函数原型:
char *strtok_r(char *str, const char *delim, char **saveptr);
参数:
str:被分割的字符串,若str为NULL,则被分割的字符串为*saveptr
delim:依据此字符串分割str
saveptr:分割后剩余部分的字符串
返回值:
遇到第一个delim时,分割出的字符串,若没有遇到delim,则范围NULL
例程:
int main(int argc,char* argv[])
{
char str[1024] = "this is a test!";
char *token;
char *saveptr;
token = strtok_r(str, " ", &saveptr);
printf("token:%s\n",token);
printf("saveptr:%s\n\n\n",saveptr);
token = strtok_r(saveptr, " ", &saveptr);
printf("token:%s\n",token);
printf("saveptr:%s\n",saveptr);
return 0;
}
结果:
例程:
int main(int argc,char* argv[])
{
char str[1024] = "this is a test!";
char *token;
char *saveptr;
saveptr = str;
token = strtok_r(NULL, " ", &saveptr);
printf("token:%s\n",token);
printf("saveptr:%s\n",saveptr);
return 0;
}
结果:
若delim为“”,则不分割
例程:
int main(int argc,char* argv[])
{
char str[1024] = "this is a test!";
char *token;
char *saveptr;
saveptr = str;
token = strtok_r(NULL, "", &saveptr);
printf("token:%s\n",token);
printf("saveptr:%s\n",saveptr);
return 0;
}
结果: