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

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

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

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

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

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

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

例程:

#include <string.h>
#include <stdio.h>int main () {char str[80] = "ab,cd,ef";const char s[2] = ",";char *token;/* 获取第一个子字符串 */token = strtok(str, s);/* 继续获取其他的子字符串 */while( token != NULL ) {printf( "%s\n", token );token = strtok(NULL, s);}return(0);
}
执行结果:
ab
cd
ef

C语言strtok()函数:字符串分割相关推荐

  1. strtok(), strtok_s() 字符串分割函数

    strtok(), strtok_s() 字符串分割函数 //strtok()函数原型/*_Check_return_ _CRT_INSECURE_DEPRECATE(strtok_s) _CRTIM ...

  2. C语言strtok函数使用实例以及注意事项

    C语言strtok函数使用 使用场景 代码实例 注意事项 参考 使用场景 字符串内容中被某个或者某些字符分割成若干部分,需要取出被分隔的若干个子字符串又不想去确定特殊字符的个数. 比如将下列字符串21 ...

  3. C语言中的字符串分割函数

    char *strtok(char *s, const char *delim); 分解字符串为一组字符串.s为要分解的字符串,delim为分隔符字符串. 从s开头开始的一个个被分割的串.当没有被分割 ...

  4. 恶心的C语言strtok函数

    从C#.JAVA到C ,让我觉得像是从公产主义社会回到了原始社会,不顺手,所以很心里憋气!!! 函数名: strtok  功  能: 查找由在第二个串中指定的分界符分隔开的单词  用  法: char ...

  5. C语言strtok函数的用法

    先理解strtok函数的定义,尤其是指针方面的,需要自己理解. 原型: char *strtok(char *s, const char *delim); #include<string.h&g ...

  6. C语言用函数字符串的查找,字符串查找函数,C语言字符串查找函数详解

    在对 C 语言的编程实践中,字符串查找是最频繁的字符串操作之一,本节就对常用的字符串查找函数做一个简单的总结. 使用 strchr 与 strrchr 函数查找单个字符如果需要对字符串中的单个字符进行 ...

  7. c语言以空格分割字符串_C语言strtok()函数:用指定的分隔符分解字符串

    函数名: strtok 头文件: 函数原型: char *strtok(char *str1, const char *str2); 功能: 用指定的分隔符分解字符串 参数:   char *str1 ...

  8. C语言strtok函数

    strtok是C语言用于分割字符串的函数,需要include<string.h>. 第一次使用时第一个参数传入待分割的字符串,第二个参数传入分割符号. 第二次使用时第一个函数传入NULL, ...

  9. c语言strtok函数完美实现

    看到网上好多错误的strtok实现,也不能说错,准确的说是没有完全的实现strtok,现自己写了下,目前还没有找到bug,如果有不对的欢迎指出. 大多数网上的strtok实现的代码跑不过a[]={&q ...

最新文章

  1. datagridview java_仅更新datagridview中的一个单元格
  2. 学习 Message(4): 通过 Application.OnMessage 或 TApplicationEvents 响应消息
  3. c语言的考试是操作电脑还是写试卷,C语言考试试卷都是基础的题目,由于本人没学过C语言,求各位帮忙, 爱问知识人...
  4. Java多线程-新特性-线程池
  5. LOB字段存放在指定表空间 清理CLOB字段及压缩CLOB空间
  6. C语言中如何衡量算法的正确性,从C语言的角度重构数据结构系列(二)-如何衡量一个算法的优劣?...
  7. 基于springboot的多人聊天系统
  8. mysql like 全文索引_mysql like%query是慢全文索引
  9. 重新注册所有dll文件
  10. 计算机自己创作游戏,说说自己做的数据库:我不爱玩电脑游戏,自己做数据库自己欣赏...
  11. 如何使用matlab绘制晶胞结构示意图
  12. ERP管理web后台_数字化、智能化工厂管理系统原型、erp生产管理、仓库管理、采购管理、设备能源管理、计划管理、数字化工厂erp管理系统、生产计划、采购计划、用料请领、产品bom、工序管理、车间设备
  13. 关于 Uncaught ReferenceError: mOxie is not defined情况下的问题
  14. Android 深色模式适配
  15. git mertool使用kdiff3解决冲突合并
  16. 让临时停车号码牌会说话--鲁哇客智能挪车号码牌技术升级之路
  17. banner轮播图实现
  18. 蓝桥 卷“兔”来袭编程竞赛专场-08列置换加密 题解
  19. 看的见的算法系列——插入排序
  20. Notion——Android版下载与注册登录

热门文章

  1. 达人评测 惠普暗影精灵8和惠普暗影精灵8plus的区别
  2. 关于使用群晖系统创建音乐外链的研究
  3. 黑客捣毁了个暗网杀手网站,却险些触发了世界各地的多起杀戮...
  4. 当我们想要用LinkedIn领英开发客户时,如何设计填写职位头衔?
  5. c语言中的正弦函数与余弦函数
  6. mysql产品分类_MySQL习题1 一对多实例 产品和分类
  7. python可以自动拆分表格吗_Python 拆分表格并发送邮件
  8. php 聚合广告平台,GitHub - mystudytime/easy-amazon-advertising: 基于 amazon advertising v2 接口的 PHP 广告信息组件...
  9. PO:更改数组与对象的配置
  10. 微软新Logo四色代表什么?Win8/Office/Xbox等