strtok()

将字符串拆分成tokens,tokens是被分隔符中的任何字符分隔的连续字符序列

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

  • sep参数是个字符串,定义了用作分隔符的字符集合
  • 第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。
  • strtok函数的第一个参数不为 NULL ,函数将找到str中第一个标记,strtok函数将保存其在字符串中的位置。
  • 如果字符串中不存在更多的标记,则返回 NULL 指针。

工作原理:

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

(注: strtok函数会改变被操作的字符串(置\0操作),所以在使用strtok函数切分的字符串一般都是临时拷贝的内容 并且可修改。)

如下一段代码

char arr[] = "Atsuki@yeah.net";
const char* sep = "@.";
strtok(arr,sep);//从字符串头开始找第一个标记
strtok(NULL,sep);//从保存好的位置开始继续往后找
strtok(NULL,sep);//从保存好的位置开始继续往后找

strtok会从arrA开始找一直到分隔符@,找到后就会将@置为\0并记住这个位置,然后返回Atsuki字段的首地址,即A的地址。

strtok(arr,sep);执行后字符串就变为了

char arr[] = "Atsuki\0yeah.net";

然后strtok(NULL,sep);就会返回y的地址,并把.置为\0

下一个strtok(NULL,sep);会返回n的地址

如果再调用strtok(NULL,sep);就返回空指针

但是

一般我们会用将strtok作用在待切分字符串的临时拷贝上,因为它会改变原字符串,并且我们把上面的代码改进一下就是这样的

int main()
{char arr[] = "Atsuki@yeah.net";const char* sep = "@.";char buff[30] = {0};strcpy(buff,arr);char* str = NULL;for(str=strtok(buff,sep); str!=NULL; str=strtok(NULL,sep)){printf("%s\n", str);}return 0;
}

strtok()函数相关推荐

  1. 恶心的C语言strtok函数

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

  2. C和指针之字符串strtok函数

    1.strtok函数 头文件:#include <string.h> 定义函数:char * strtok(char *s, const char *delim); 函数说明:strtok ...

  3. 【摘录】C语言中利用 strtok函数进行字符串分割

    C语言不像Java,Php之类的高级语言,对象中直接封装了字符串的处理函数.C语言中进行普通的字符串处理也经常会让我们焦头烂额--不过好在C语言 中还是提供了像strtok这样功能强大的字符串处理函数 ...

  4. bob-tong 字符串函数之Strtok()函数

    https://www.cnblogs.com/Bob-tong/p/6610806.html Strtok()函数详解:   该函数包含在"string.h"头文件中  函数原型 ...

  5. C/C++根据特定字符分割字符串、读取文件去掉逗号等特定字符、strtok()函数详解

    字符串分割情况 读取文件时,C++识别的是空格和换行符,但有时候文件是以符号分割的,如逗号等 字符串本身含有特殊符号,如逗号,@等 strtok()函数 strtok()函数能够按照特定的字符分解字符 ...

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

    1.头文件:#include <string.h> 2.定义函数:char * strtok(char *s, const char *delim);      分解字符串为一组字符串.s ...

  7. strstr函数和strtok函数的使用

    目录: strstr函数的使用 模拟实现strstr函数 strtok函数的使用 strstr函数定义:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该 ...

  8. strtok函数及其实现

    头文件:#include <string.h> 定义函数:char * strtok(char *s, const char *delim); 函数说明:strtok()用来将字符串分割成 ...

  9. c strtok函数用法

    strtok函数用于分割字符串,原型如下: char *strtok(char *str, const char *delim); str为指向欲分割的字符串,delim为分隔符,实例如下: #inc ...

  10. strtok函数的使用

    函数形式: #include <string.h> char *strtok(char *str, const char *delim); 作用: 根据某个定界附,将字符串分解成多个部分. ...

最新文章

  1. 2022-2028年中国氟橡胶产业竞争现状及发展前景分析报告
  2. 优达同学波士顿房价预测
  3. 架空输电线路运行规程_[精品课程]绝缘子及其设计架空输电线路设计
  4. 网页3D效果库Three.js学习[二]-了解照相机
  5. JVM源码分析-Java运行
  6. Docker操作系统理解
  7. 数学--图论--莫比乌斯线性筛模板
  8. 安装python无法启动_终端里为什么无法运行python?
  9. 常用的loss函数,以及在训练中的使用
  10. Web前端笔记-two.js图形旋转动画的2种实现方式
  11. C# DataGridView 如何选中整行
  12. python 指针_C++的动态内存:C++的指针
  13. SIR模型的应用 - Influence maximization in social networks based on TOPSIS(3)
  14. 【manjaro安装最新的搜狗输入法】2022年1月4号有效测试
  15. python xlsxwriter生成图片保存_Python xlsxwriter库 图表Demo
  16. mac开机启动项怎么设置,苹果电脑开机启动项在哪里设置
  17. 小布语音下载安装_小布语音助手
  18. jqwidgets 国际化- 中文 jqxGrid 中文语言包 gridlocalization
  19. mysql精度_MySQL几种数据类型精度和标度的情况
  20. 总结整理Echarts双y轴曲线图(全)

热门文章

  1. 深度|下一家BAT长这样( 演讲)
  2. 条形码入门指南(七):线性条形码
  3. Python去除空格
  4. 微信小程序即时聊天对话窗口静态源码
  5. 3Dmax模型完美导入Revit
  6. 使用python爬取BOSS直聘岗位数据并做可视化(Boss直聘对网页做了一些修改,现在的代码已经不能用了)
  7. 基于SSM+JSP的人体健康信息管理系统
  8. 初中生python怎么教_初中生如何自学Python,计算机网络技术?
  9. encountered an improper argument
  10. 小菜教你用“运行”快捷键打开常用软件——释放你的桌面