strtok函数的用法是什么
郑昌梦 2023-09-17编程经验
什么是strtok函数strtok()函数是C语言标准库中的一个字符串切割函数,可以将一个字符串按照指定的分隔符分割成多个子字符串。strtok函数的使用方法strtok()函数原型为char*strtok(char*
什么是strtok函数
strtok()函数是C语言标准库中的一个字符串切割函数,可以将一个字符串按照指定的分隔符分割成多个子字符串。
strtok函数的使用方法
strtok()函数原型为char *strtok(char *str, const char *delim),它接受两个参数:要切割的字符串和分隔符。
第一次调用时,需要将要切割的字符串作为str参数传入,此后每次调用该函数时,将str设置为NULL,表示继续使用上一次的字符串继续切割,直到字符串被切割完。
下面是一个strtok函数的示例:
#include
#include
#include
int main()
{
char str[] = "this is a test";
char *token;
token = strtok(str, " ");
while(token != NULL)
{
printf("%s\n", token);
token = strtok(NULL, " ");
}
return 0;
}
上面的代码将字符串"this is a test"按空格分隔成4个子字符串并逐一打印输出。
strtok函数的注意事项
strtok()函数在处理输入字符串时,会将分隔符替换为空字符('\0'),并返回上一次分隔符的位置作为下一次分隔的起点。
如果在多个线程中同时使用strtok()函数,由于该函数是状态性的,会发生竞争条件导致数据异常。
如果要切割的字符串是常量字符串,要先将其拷贝一份,否则会发生段错误。
下面是一个strtok函数的示例:
#include
#include
#include
int main()
{
char str[] = "this,is,,a,test";
char *token;
token = strtok(str, ",");
while(token != NULL)
{
printf("%s\n", token);
token = strtok(NULL, ",");
}
return 0;
}
上面的代码将字符串"this,is,,a,test"按逗号分隔成5个子字符串并逐一打印输出。
很赞哦! ()