void strtokTest()
{
char a[100] = "abc def hig aaa bbb";
char* s = strtok(a, " ");
while (s != NULL)
{
printf("%s\n", s);
Sleep(500);
s = strtok(NULL, " ");
}
}
注意事项:
- 在第一次调用时:strtok()必需给予参数s字符串。
- 往后的调用则将参数s设置成NULL,每次调用成功则返回指向被分割出片段的指针。
特别注意:
- 切割字符串之后会破坏原有字符串的内容样式。
- 如果后续还用,就要提前copy一份。
void strtokTest2()
{
char src[100] = "www.baidu.com";
printf("src = %s\n", src);
char* res = strtok(src, ".");
printf("res = %s\n", res);
printf("src2 = %s\n", src);
}
头部文件:
#include <string.h>
函数结构:char *strtok(char *str, const char *delim);
功能:
将字符串分割成一个个片段。当strtok()在参数s的字符串中发现参数delim中包含的分割字符时, 则会将该字符改为\0 字符,当连续出现多个时只替换第一个为\0。
参数:
str:指向欲分割的字符串
delim:为分割字符串中包含的所有字符
返回值:
- 成功:分割后字符串首地址
- 失败:NULL