跳转到主内容
极星编程网:以代码为星,赴技术山海!

strtok、strtok_s、strtok_r:它们到底有什么区别?

大家好,我是苏承栈,今天咱们来聊聊字符串切割函数的那些事儿。你有没有遇到过需要把一个字符串按照某种规则切成多个片段的情况?比如,把一串电话号码分割成区号、号码两部分。这时候,`strtok`、`strtok_s`、`strtok_r`这几个函数就派上用场了。但是,它们之间有什么区别呢?别急,下面我会一步步带你解析。

strtok函数

首先来看看`strtok`。这个函数的用法很简单,它需要两个参数:一个是待分割的字符串,另一个是分割符字符串。它的工作原理是,在待分割的字符串中找到分割符,然后将分割符替换为`\0`,并返回指向被分割出片段的指针。需要注意的是,使用`strtok`会破坏原字符串,而且它使用的是静态变量来保存下一次分割的起始位置,所以在多线程环境下可能会出现问题。



                            
                            
                        

相关文章