strtok()函数

Posted aiqinger

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了strtok()函数相关的知识,希望对你有一定的参考价值。

说明
(1)当strtok()在参数s的字符串中发现参数delim中包含的分割字符时,则会将该字符改为 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。
(2)返回值

从s开头开始的一个个被分割的串。当s中的字符查找到末尾时,返回NULL。如果查找不到delim中的字符时,返回当前strtok的字符串的指针。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。

(3)需要注意的是,使用该函数进行字符串分割时,会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。第一次分割之后,原字符串str是分割完成之后的第一个字符串,剩余的字符串存储在一个静态变量中,因此多线程同时访问该静态变量时,则会出现错误。

1 char *sep = " ";     //以空格切分字符串,同时计算乘除
2 char *p;
3 p = strtok(str0, sep);

功能:截取str0中,以“ ”为分界的字符。

以上是关于strtok()函数的主要内容,如果未能解决你的问题,请参考以下文章

linux strtock()函数使用问题

C语言源码剖析与实现——strtok()系列函数实现

函数内部还是不要使用 strtok()

关于函数strtok和strtok_r的使用要点和实现原理

到处是“坑”的strtok()—解读strtok()的隐含特性

VC实现字符串分割的函数strtok