字符串切割函数——strtok()函数介绍
1. 函数功能介绍
strtok()函数作用于字符串,以包含在delimiters中的字符为分界符,将s切分成一个个子串;如果s为空值NULL,则函数保存的指针SAVE_PTR在下一次调用中将作为起始位置。
2. 函数原型
strtok()函数包含在头文件string.h中,函数的原型如下:
char* strtok (char* str,constchar* delimiters );
3. 函数参数和返回值
① 传入参数
从函数原型可以看出,该函数需要传入两个参数:一个是要分割的字符串首地址str;一个是常量分割标志字符串的首地址delimiters。
② 函数返回值
当s中的字符查找到末尾时,返回空指针;如果未找到到delimiters内的字符,则返回当前strtok()操作的字符串的指针,下次调用时,将上次执行结束前访问到的字符串s的位置作为新的起始位置。
l 函数的使用
例如,我们想要实现将以下字符串按照字符’#’进行切割,并得到切割结果。
源字符串:
Anhui#Normal#University#is#a#beautiful#college#campus#with#a#long#history.
目标结果:
Anhui Normal University is a beautiful college campus with a long history.
实现代码如下:
#include<stdio.h>
#include<string.h>
int main()
{
char s[]="Anhui#Normal#University#is#a#beautiful#college#campus#with#a#long#history.";
char *temp=strtok(s,"#");
while(temp!=NULL)
{
printf("%s ",temp);
temp=strtok(NULL,"#");
//下次调用时,将上次执行结束前访问到的字符串s的位置作为新的起始位置,因此这里传入的参数str需要设置为空。
}
return 0;
}