测试环境:VC6.0
char *strtok(char *s, const char *delim);
delim中的字符是'或'不是'与'的关系,即只要s包含delim中的任何一个字符都会被替换.
delim会改变s,把s里面出现的delim换成'/0',
如果delim出现在s头部(这里的s包含调用过strtok后的余下s),会跳过。
运行结果:
;;12345678;901;1234;;5555;666.
(12345678)
0(901)
1(1234)
2(5555)
3(666.)
[3b][3b][31][32][33][34][35][36][37][38][0][39][30][31][0][31][32][33][34][0][3b
][35][35][35][35][0][36][36][36][2e]
Press any key to continue
运行结果:
1234
(null)
Press any key to continue
测试环境:gcc
运行结果:
zl@ubuntu:~/Desktop$ ./test
1234
Segmentation fault
结论:
当strtok把s全部分割完后,如果再次调用strtok会出现"Segmentation fault"错误.