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 国际」许可协议进行许可。

posted @   ⭐⭐-fighting⭐⭐  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
more_horiz
keyboard_arrow_up light_mode palette
选择主题
menu
点击右上角即可分享
微信分享提示