【C语言】神奇的分割利器:strtok函数解析

2024-06-15 1095阅读

strtok 函数是C语言中一个用于分割字符串的函数。它被包含于头文件中。

【C语言】神奇的分割利器:strtok函数解析

它可以将一个字符串按照指定的分隔符进行分割,每次调用返回被分割出的部分,并在内部记录当

前位置,以便下一次调用时能够继续分割。

函数原型:

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

str:      要分割的字符串,第一次调用时传入需要分割的字符串,之后传入 NULL。

delim: 分隔符字符串,用于指定分隔字符串的分隔符集合。

strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。

(注:strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷贝

的内容并且可修改。)

 

下面给出一个实例:

#include 
#include 
int main()
{
    // 定义一个字符串数组,并初始化
    char arr[] = "High-Earphone@qq.com.666@.gaoerji";
    // 定义分隔符字符串
    char* sep = "@.";
    // 定义一个指向字符串的指针,用于存储每次分割得到的子字符串
    char* str = NULL;
    // 使用 strtok 函数进行字符串分割,每次调用都会返回被分割出的部分
    for (str = strtok(arr, sep); str != NULL; str = strtok(NULL, sep))
    {
        // 输出每次分割得到的子字符串
        printf("%s\n", str);
    }
    return 0;
}

运行结果为:

【C语言】神奇的分割利器:strtok函数解析

在这段代码中,我们首先定义了一个字符串 arr,其中包含了需要分割的原始字符串。然后,我们定义了分隔符字符串 sep,它包含了用来分割原始字符串的字符。接着,我们使用 strtok 函数进行字符串分割。在 for 循环中,我们不断调用 strtok 函数,每次获得分割出的子字符串,并将其输出。最终,整个字符串被成功分割并输出。 

由于for循环的初始化只执行一次的特性,strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串中的位置。

而在后续循环赋值过程中,strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标记。(如果字符串中不存在更多的标记,则返回 NULL 指针。)


以上就是本篇全部内容了。

你学会使用strtok函数了吗?

如有不足之处希望大家多多指出。

我是高耳机。

VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]