strtok()的用法
时间: 2023-10-30 17:08:34 浏览: 38
`strtok` 是一个 C 标准库函数,用于将字符串分割为多个子字符串。
函数声明:
```c
char* strtok(char* str, const char* delimiters);
```
参数说明:
- `str`:要分割的字符串。第一次调用时传入要分割的字符串,之后传入 NULL 继续分割。在后续调用中,如果传入 NULL,则继续对上一次分割的字符串进行分割。
- `delimiters`:分割的定界符(一个字符串)。用于指定用于分割的字符集合,可以是一个或多个字符。常用的定界符包括空格、逗号、分号等。
返回值:
- 返回指向下一个子字符串的指针。如果没有更多子字符串,则返回 NULL。
注意事项:
- 在使用 `strtok` 函数之前,需要包含 `string.h` 头文件。
- `strtok` 函数会修改原始字符串,将指定的定界符替换为 `\0`,所以在使用 `strtok` 之前,可以考虑备份原始字符串。
- 如果要获取多个连续的定界符,可以在定界符之间插入一个空字符串 ""。
下面是一个示例代码,演示了如何使用 `strtok` 函数将字符串分割为多个子字符串:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello,World,C Language";
const char delimiters[] = ", ";
char* token = strtok(str, delimiters);
while (token != NULL) {
printf("%s\n", token);
token = strtok(NULL, delimiters);
}
return 0;
}
```
在上述示例中,我们首先定义了一个字符串 `str`,其中包含了几个单词和逗号分隔符。然后,我们定义了一个字符串 `delimiters`,其中包含了逗号和空格两个定界符。
接下来,我们使用 `strtok` 函数将字符串 `str` 按照定界符进行分割。第一次调用时,我们将字符串 `str` 和定界符 `delimiters` 传入,函数返回第一个子字符串的指针。之后,我们通过一个循环使用 `strtok(NULL, delimiters)` 继续获取下一个子字符串的指针,直到所有子字符串都被分割完毕。
运行示例代码将输出:
```
Hello
World
C
Language
```
可以看到,字符串被成功分割为多个子字符串,并逐个打印出来。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)