【C语言】神奇的分割利器:strtok函数解析
高耳机High-Earphone 2024-07-06 10:05:03 阅读 73
strtok 函数是C语言中一个用于分割字符串的函数。它被包含于头文件<string.h>中。
它可以将一个字符串按照指定的分隔符进行分割,每次调用返回被分割出的部分,并在内部记录当
前位置,以便下一次调用时能够继续分割。
函数原型:
<code>char *strtok(char *str, const char *delim);
str: 要分割的字符串,第一次调用时传入需要分割的字符串,之后传入 NULL。
delim: 分隔符字符串,用于指定分隔字符串的分隔符集合。
strtok函数找到str中的下⼀个标记,并将其⽤ \0 结尾,返回⼀个指向这个标记的指针。
(注:strtok函数会改变被操作的字符串,所以在使⽤strtok函数切分的字符串⼀般都是临时拷贝
的内容并且可修改。)
下面给出一个实例:
#include <stdio.h>
#include <string.h>
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;
}
运行结果为:
在这段代码中,我们首先定义了一个字符串 <code>arr,其中包含了需要分割的原始字符串。然后,我们定义了分隔符字符串 sep
,它包含了用来分割原始字符串的字符。接着,我们使用 strtok
函数进行字符串分割。在 for
循环中,我们不断调用 strtok
函数,每次获得分割出的子字符串,并将其输出。最终,整个字符串被成功分割并输出。
由于for循环的初始化只执行一次的特性,strtok函数的第⼀个参数不为 NULL ,函数将找到str中第⼀个标记,strtok函数将保存它在字符串中的位置。
而在后续循环赋值过程中,strtok函数的第⼀个参数为 NULL ,函数将在同⼀个字符串中被保存的位置开始,查找下⼀个标记。(如果字符串中不存在更多的标记,则返回 NULL 指针。)
以上就是本篇全部内容了。
你学会使用strtok函数了吗?
如有不足之处希望大家多多指出。
我是高耳机。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。