栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言strtok()函数:字符串分割

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言strtok()函数:字符串分割

1、头文件:#include
2、定义函数:char * strtok(char *s, const char *delim);
     分解字符串为一组字符串。s为要分解的字符,delim为分隔符字符(如果传入字符串,则传入的字符串中每个字符均为分割符)。
3、函数说明:

strtok()用来将字符串分割成一个个片段。参数s 指向欲分解的字符串,参数delim 则为分隔字符串;

当strtok()在参数s 的字符串中发现到参数delim 的分割字符时则会将该字符改为 字符。

在第一次调用时,strtok()必需给予参数s 字符串,往后的调用则将参数s 设置成NULL。每次调用成功则返回下一个分割后的字符串指针。

4、返回值:返回下一个分割后的字符串指针,如果已无从分割则返回NULL。

5、注意:使用该函数进行字符串分割时,会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。第一次分割之后,原字符串str是分割完成之后的第一个字符串,剩余的字符串存储在一个静态变量中,因此多线程同时访问该静态变量时,则会出现错误。

备注:strtok函数会破坏被分解字符串的完整,调用前和调用后的s已经不一样了。如果要保持原字符串的完整,可以使用strchr和sscanf的组合等。

例程:

#include 
#include 
 
int main () {
   char str[80] = "ab,cd,ef";
   const char s[2] = ",";
   char *token;
   
   
   token = strtok(str, s);
   
   
   while( token != NULL ) {
      printf( "%sn", token );
      token = strtok(NULL, s);
   }
   
   return(0);
}

执行结果:
ab
cd
ef

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/297658.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号