点击(此处)折叠或打开
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-
int main()
-
{
-
char str1[]="a,b,c,d";
-
char str2[]="1,2,3,4";
-
char *ptr1=NULL;
-
char *ptr2=NULL;
-
char *ptr3=NULL;
-
ptr2 = strtok(str2, ",");
-
ptr1 = strtok(str1, ",");
-
ptr3 = strtok(NULL, ",");
-
printf("ptr3:%s\n",ptr3);//b
-
-
return 0;
- }
点击(此处)折叠或打开
-
#include <stdio.h>
-
#include <stdlib.h>
-
#include <string.h>
-
int main()
-
{
-
//char str[]="ppp0,2012,3af1,5d3,3,a1b7,5bd3,7459,6f2f";
-
char str1[]="aa,bb,cc,dd";
-
char *ptr1=NULL;
-
char *saveptr1=NULL;
-
char str2[]="11,22,33,44";
-
char *ptr2=NULL;
-
char *saveptr2=NULL;
-
ptr1 = strtok_r(str1, ",",&saveptr1);
-
printf("ptr1:%s\n",ptr1);
-
printf("str1:%s\n",str1);
-
ptr2 = strtok_r(str2, ",",&saveptr2);
-
printf("ptr2:%s\n",ptr2);
-
ptr1 = strtok_r(NULL, ",",&saveptr1);
-
printf("ptr1:%s\n",ptr1);
-
ptr2 = strtok_r(NULL, ",",&saveptr2);
-
printf("ptr2:%s\n",ptr2);
-
-
return 0;
- }
当第一个参数不为NULL时,从第一个参数开始截取,当第一个参数为NULL时,从内部指针指向的位置开始截取
strtok从内部this指针指向的位置开始截取,strtok_r从saveptr1指向的位置开始截取。