strtok
strtok
函数是C标准库中的字符串处理函数,用于将字符串拆分成子字符串,使用指定的分隔符进行拆分。
函数原型#
char *strtok(char *str, const char *delim);
-
str
:要拆分的字符串,第一次调用时传入待拆分的字符串,后续调用时传入NULL
。 -
delim
:分隔符字符串,指定用于拆分的分隔符。 -
返回值:返回拆分后的子字符串的指针,如果没有可拆分的子字符串,返回
NULL
。
函数详解#
strtok
函数将字符串 str
拆分成一系列子字符串,每个子字符串以 delim
中的字符作为分隔符。第一次调用时,需要传入要拆分的原始字符串,后续调用只需传入 NULL
。
-
第一次调用:
strtok
在第一次调用时,接受原始字符串str
和分隔符delim
。- 它会查找
str
中的第一个不包含分隔符的字符,作为第一个子字符串的开头。 - 然后它查找下一个分隔符,并将该位置之后的字符作为下一个子字符串的开头。
- 以此类推,直到遇到字符串末尾或者无法找到更多的分隔符。
-
后续调用:
- 传入
NULL
作为第一个参数,strtok
会继续使用原始字符串,并继续查找下一个子字符串。
- 传入
具体用法#
下面是一个简单的示例,演示了如何使用 strtok
将一个字符串拆分成子字符串:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello,world,how,are,you";
const char delim[] = ",";
// 第一次调用 strtok,传入原始字符串
char *token = strtok(str, delim);
// 循环遍历所有子字符串
while (token != NULL) {
printf("Token: %s\n", token);
// 后续调用 strtok,传入 NULL
token = strtok(NULL, delim);
}
return 0;
}
在此示例中,我们将字符串 "hello,world,how,are,you"
使用逗号作为分隔符进行拆分。strtok
函数首次调用传入原始字符串,后续调用传入 NULL
,以继续拆分。每次调用 strtok
都会返回一个拆分后的子字符串,直到无法找到更多的分隔符。
作者:keep--fighting
出处:https://www.cnblogs.com/keep--fighting/p/17745147.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)