#include <stdio.h>
#include <string.h>
int main (int argc, char **argv)
{
char *savePtr = NULL;
char *res = NULL;
char *str = argv[1];
printf("argv[1]:%s.\n", str);
while (NULL != (res = strtok_r(str, "|", &savePtr)))
{
printf("res:%s.\n", res);
str = NULL;
}
#include <string.h>
int main (int argc, char **argv)
{
char *savePtr = NULL;
char *res = NULL;
char *str = argv[1];
printf("argv[1]:%s.\n", str);
while (NULL != (res = strtok_r(str, "|", &savePtr)))
{
printf("res:%s.\n", res);
str = NULL;
}
}
strtok_r与strtok的区别是其是线程安全的,是可重入的, 不再使用静态变量保存信息,而是使用栈指针。