`strtok()` 函数用于将字符串分割成子字符串(标记)。它在 C 语言中非常常用,可以通过指定分隔符来拆分原始字符串,并依次返回每个子字符串。
以下是 `strtok()` 函数的使用方法:
#include <stdio.h>
#include <string.h>
int main() {
//原始字符串
char str[] = "apple,banana,cherry";
char *token;
// 使用 strtok() 函数分割字符串
// 第一次调用需要传入原始字符串,并指定分隔符
token = strtok(str, ",");
// 继续调用 strtok() 函数获取下一个子字符串
// NULL 参数表示继续使用之前传入的原始字符串
while (token != NULL) {
printf("Token: %s\n", token);
token = strtok(NULL, ",");
}
return 0;
}
在上面的示例中,我们首先定义了一个原始字符串 `str`,其中包含了多个水果名称,这些名称使用逗号分隔。然后,我们使用 `strtok()` 函数将原始字符串分割成子字符串。
`strtok()` 函数的使用方法如下:
1. 首次调用 `strtok()` 时,传入原始字符串作为第一个参数,并指定分隔符作为第二个参数。这个调用会返回第一个子字符串。
2. 后续调用 `strtok(NULL, 分隔符)`,其中第一个参数传入 NULL,表示继续使用之前传入的原始字符串。这将返回下一个子字符串,直到没有更多的子字符串为止。
请注意以下几点:
- `strtok()` 函数会修改原始字符串,将分隔符替换为 NULL 字符 ('\0'),因此在使用时要小心,不要在原始字符串上进行其他操作。
- 如果没有更多的子字符串可供分割,`strtok()` 返回 `NULL`,因此你可以使用 `while` 循环来遍历所有子字符串。
- 如果要使用不同的分隔符,可以多次调用 `strtok()`,每次使用一个不同的分隔符。
- 如果原始字符串中包含连续的分隔符(如多个逗号连在一起),`strtok()` 会将它们视为一个分隔符,并在分隔符之间返回空字符串。
- 要注意,strtok() 不是线程安全的函数,如果在多个线程中使用,可能需要采取额外的措施来确保线程安全性。