C 标准库 - <string.h>

C 语言 strtok() 函数用于按分隔符把字符串拆分成多个子串。它是有状态的函数,第一次传字符串,之后传 NULL 继续取下一段。

原型

char *strtok(char *str, const char *delim);

参数

  • str - 要拆分的字符串(首次调用);后续调用传 NULL;
  • delim - 分隔符集合。

返回值

返回拆分出的下一个子串;没有更多子串时返回 NULL。

示例

#include <stdio.h>
#include <string.h>

int main()
{
    char str[] = "apple,banana,cherry";
    char *token = strtok(str, ",");

    while (token != NULL) {
        printf("%s\n", token);
        token = strtok(NULL, ",");
    }

    return 0;
}

输出:

apple
banana
cherry

注意事项

strtok 会修改原字符串(用 \0 替换分隔符),且内部使用静态缓冲区,多线程场景下不安全(可用 strtok_r)。