字符在第一次调用时strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL每次调用成功则返回指向被分割出片段的指针。
测试参考源码:
#include <stdio.h>
#include <string.h>
int test01()
{
char a[100] = "abc_3423423_aaaaa_world";
char *s;//定义一个char的指针变量
s = strtok(a, "_");
printf("%s\n", s);
s = strtok(NULL, "_");//第二次调用的时候,第一个参数写NULL
printf("%s\n", s);
s = strtok(NULL, "_");
printf("%s\n", s);
s = strtok(NULL, "_");
printf("%s\n", s);
s = strtok(NULL, "_");
printf("%s\n", s);
return 0;
}
int main()
{
char a[100] = "abc_3423423_aaaaa_world_dddddd_qqqqqq_xxxxx";
char *s;
s = strtok(a, "_");
while(s)
{
printf("%s\n", s);
s = strtok(NULL, "_");
}
test01();
return 0;
}
测试结果:
abc
3423423
aaaaa
world
dddddd
qqqqqq
xxxxx
abc
3423423
aaaaa
world
Segmentation fault (core dumped)