char* strtok(char* str, const char* seq);
strtok函数存在一个静态变量
seq参数时一个字符串,其定义了一个或多个的分隔符的字符集合
第一个参数指定一个字符串, 这个字符串里包括一个或多个seq参数的字符集合
strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个小字符串的指针
strtok函数会改变操作的字符串,所有在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改
第一个参数不是NULL时,strtok函数查找str下一个标记,以\0结尾,strtok函数会保存标记的地址
第一个参数时NULl时,strtok函数从被保存的位置开始寻找下一个标记,
如果没有更多的标记则返回 NULL.
#include<stdio.h>
#include<string.h>
int main(){
char arr1[] = "1@.22.@333.4444";
char arr2[1024] = {0};
strcpy(arr2, arr1);
//strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向小字符串的指针
//strtok函数会改变操作的字符串,所有在使用strtok函数切分的字符串一般都是临时拷贝的内容并且可修改
const char* p = "@."; //字符集合
char* ret = NULL; //ret用来接收strtok函数返回的地址
//切割字符串
for(ret=strtok(arr2,p); ret!=NULL; ret=strtok(NULL,p)){
printf("%s\n",ret);
}
// char* ret = strtok(arr,p);
// printf("%s\n", ret);
//
// ret = strtok(NULL,p);
// printf("%s\n", ret);
//
// ret = strtok(NULL,p);
// printf("%s\n", ret);
//
// ret = strtok(NULL,p);
// printf("%s\n", ret);
return 0;
}