
简介strtok函数是 C 语言标准库中用于分割字符串的函数。作用是将一个字符串根据指定的分隔符分割成多个子字符串。原型char *strtok(char *str, const char *delim);str是要分割的原始字符串。在第一次调用strtok时str应指向待分割的字符串。在随后的调用中str应该设置为NULL。delim是一个包含所有分隔符的字符串。每次调用strtok时它都会返回下一个分割出的子字符串。如果没有更多的子字符串可以检索它将返回NULL。使用示例#include string.h #include stdio.h int main() { char str[80] This is - www.runoob.com - website; const char s[2] -; char *token; // 获取第一个子字符串 token strtok(str, s); //printf(%s\n,str); //strtok会修改源字符串 // 继续获取其他的子字符串 while(token ! NULL) { printf(%s\n, token); token strtok(NULL, s); } return 0; }输出结果This is www.runoob.com website注意事项strtok函数会修改被操作的字符串因此通常会对原始字符串进行复制并确保这个副本是可修改的。在多线程环境中使用strtok需要特别小心因为它使用静态变量来存储每次调用后的剩余字符串这可能会导致线程安全问题。如果需要保持原始字符串不变可以考虑使用其他函数如strchr和sscanf的组合应用使用strtok函数可以有效地处理字符串分割任务尤其是在处理格式化的数据如CSV 文件或网络协议中的数据时。掌握strtok的使用对于 C 语言程序员来说是非常有用的。