当前位置 :主页 > 云服务器 >

C语言strtok():分割字符串

strtok() 是 C语言的一个标准库函数,定义在<string.h>头文件中。

strtok() 用于将字符串分割成一系列的子串,函数的原型如下:
char *strtok(char *str, const char *delim); 参数

str:要分割的字符串。第一次调用 strtok() 时,这个参数应该是你想要分割的字符串。随后的调用应该将此参数设置为NULL,以便继续从上次的位置分割。

delim:一个包含多个分隔符的字符串。这些字符被用作分隔符,将 str 分割成多个子串。

返回值 返回下一个子串的首地址,如果没有更多的子串,则返回NULL。

【实例】以下 C语言代码示例演示了 strtok() 函数的功能和用法。
#include <stdio.h> #include <string.h> int main() { char str[] = "Hello, World! Let's explore strtok."; const char *delimiters = " ,!."; // 获取第一个子串 char *token = strtok(str, delimiters); // 继续获取其他的子串 while (token != NULL) { printf("%s\n", token); token = strtok(NULL, delimiters); // 注意传递NULL来获取下一个子串 } return 0; } 上述代码使用空格、逗号、感叹号和句点作为分隔符来分割字符串。输出结果如下:

Hello
World
Let's
explore
strtok

注意,strtok() 函数在操作过程中会更改原始字符串,所以请确保只在可以修改的字符串上使用它。此外,由于 strtok() 在内部使用静态指针来保持调用之间的状态,因此它不是线程安全的。在多线程环境中使用 strtok_r() 或其他线程安全版本可能更为合适。