char * strtok ( char * str, const char * sep);
sep参数指向⼀个字符串,定义了⽤作分隔符的字符集合
第⼀个参数指定⼀个字符串,它包含了0个或者多个由sep字符串中⼀个或者多个分隔符分割的标
记。
strtok函数找到str中的下⼀个标记,并将其⽤
\0
结尾,返回⼀个指向这个标记的指针。(strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷⻉的内容 并且可修改。)
strtok函数的第⼀个参数不为
NULL
,函数将找到str中第⼀个标记,strtok函数将保存它在字符串
中的位置。
第二次以及后面使用strtok函数的第一个参数为
NULL
,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标
记。
如果字符串中不存在更多的标记,则返回
NULL
指针。
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = "192.168.6.111";
char* sep = ".";
char* str = NULL;
for (str = strtok(arr, sep); str != NULL; str = strtok(NULL, sep))
{
printf("%s\n", str);
}
return 0;
}
第一次在192 后面的". "分隔 变化为192\0168.6.111
函数记住第一个标记\0的位置 下次继续进行分割 192\0168\06.111
以此类推
输出结果:
192
168
6
111