strtok分割字符串
时间: 2024-09-26 14:18:37 浏览: 32
`strtok`是C语言中的一个库函数,它主要用于字符串的分解(tokenization),即按照指定的分隔符将一个字符串分割成一系列的小片段,这些小片段称为“token”。`strtok`有两个版本:`strtok_r`(reentrant)和`strtok`。
**基本用法**:
```c
#include <string.h>
char* strtok(char* str, const char* delimiters);
```
- `strtok`函数接受两个参数:
- 第一个参数是要分解的原始字符串。
- 第二个参数是分隔符的指针,可以是一个字符串常量,包含所有可能的分隔符。
当你第一次调用`strtok`时,需要传入整个字符串作为第一个参数,并将第二个参数设为NULL。这个函数会在字符串中找到第一个分隔符,并返回该分隔符之后的第一个非空字符,同时更新内部的标记器以便后续调用能继续从上一次结束的位置开始查找下一个分隔符。
例如:
```c
char str[] = "Hello,World! How are you?";
char* token = strtok(str, ", ! ");
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, ", ! "); // 第二次调用时传入NULL作为第一个参数
}
```
运行上述代码会输出:
```
Hello,
World!
How
are
you?
```
每次`strtok`遇到分隔符时,都会将分隔符保留在原始字符串中,所以需要注意内存管理,尤其是在连续多次调用时。
阅读全文