函数作用
找到与delimiter相同的地方,将其截断,并返回str
函数理解
第一个参数str是待切割字符串
第二个参数delimiter是分隔符字符串
返回值为char * ,一般默认返回str的地址
strtok() 的原理是将查找到与delimiter相同的部分字符串的首位变成 ' \ 0 ',然后返回str的首元素地址,完成”截断“行为。
示例
char arr3[] = "abcdefghijklmnopqrst";
char arr4[] = "ghi";
printf("%s\n", arr3);
char* a = strtok(arr3, arr4);
printf("%s\n", a);
//输出结果
//abcdefghijklmnopqrst
//abcdef
使用 strtok() 之前 使用 strtok() 之后
![]() | ![]() |
若在使用过一次 strtok() 函数之后再次使用strtok() 函数,可不加参数
仅限一次,多了就输出NULL
原因:第一次使用完毕之后 strtok() 函数会保存使用过的地址
示例
char arr3[] = "abcdefghijklmnopqrst";
char arr4[] = "ghi";
printf("%s\n", arr3);
char* a = strtok(arr3, arr4);
printf("%s\n", a);
char* b = strtok(NULL, arr4);
printf("%s\n", b);
char* c = strtok(NULL, arr4);
printf("%s\n", c);
//输出结果
//abcdefghijklmnopqrst
//abcdef
//jklmnopqrst
//(null)
若之前未使用过 strtok() 函数,不加第一个参数的话,编译器会崩溃的
char* d = strtok(NULL, arr4);
printf("%s\n", d);
//编译器崩溃了