用人话讲懂strtok函数的理解和使用

简介: 用人话讲懂strtok函数的理解和使用

---由于本人使用的是大白话来讲解strtok函数的使用,所以可能有些部分可能会有些不准确(见谅),如果想十分严谨的了解strtok函数,请移步其他文章。

       ---------那么不废话,直接开始

1.strtok函数的使用所需的头文件

2.函数的作用

              ---------把一个字符串拆分开 (拆成你想要的样子)

如图(解释):

中间那些奇怪的字符就是我们想要拆分的地方(' @ '  ' . '  ' : '  )

本质:这个函数会在我们想要拆分的地方把这些字符修改成  ' \0 ' (比如把@ --> ' \0 ' 来完拆分)

3.函数的大致解释

(1)  char * 说明这个函数的返回值是一个字符指针(不了解指针是什么的可以搜一下),返回值就是这个函数使用完后的结果

(2)  strtok是函数的名字

(3)  char * str  表明这里需要填入一个字符指针

(4)  const (作用就是让后面这个指针所指的内容不能被修改),delimiters(这个英文的意思是定界符,其实不用了解是什么意思),这里也放一个字符指针就可以

4.例子

这个函数有点繁琐,所以要好好看~

注:函数括号里面第二个空里面就只需要用引号(“  ”)把你想要拆分的标志写在里面就可以 !

结果:

啊 ???怎么只有 “我喜欢” ?    -----是的这个函数我们才用完一半

从第二次使用这个函数的时候我们就需要把括号( )里面的第一个参数改成 “ NULL ”,它会自动的从你上一次拆分的地方开始继续拆分

结果:

这样我们使用函数拆分字符串就完成了

你可能会说,太麻烦了,后面打印重复步骤太多了 !!!

那么我们可以把代码改成这样:

注:如果要拆分的地方全部都拆分完了,那么这个函数返回  “ NULL ”

相关文章
|
Ubuntu Linux API
libusb简介及在Linux中安装libusb
最近做了关于在X86环境下通过FT232H芯片实现的USB转SPI的相关驱动,接触到了libusb。libusb是一个开源的用C实现的,应用程序与用户的USB设备进行通信的库。它是可移植的,对外使用统一的API,支持Windows、macOS、Linux、Android。它是用户模式(user-mode),应用程序与USB设备通信不需要高权限,但是在Android下好像有些接口需要root权限才能调用成功。它支持所有版本的USB协议。它的License是LGPL,源码地址在https://github.com/libusb/libusb,最新发布版本为1.0.23。
libusb简介及在Linux中安装libusb
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
12月前
|
Java 编译器
如何避免在 Java 中出现 NoSuchElementException 异常
在Java中,`NoSuchElementException`通常发生在使用迭代器、枚举或流等遍历集合时,尝试访问不存在的元素。为了避免该异常,可以在访问前检查是否有下一个元素(如使用`hasNext()`方法),或者使用`Optional`类处理可能为空的情况。正确管理集合边界和条件判断是关键。
317 6
|
算法 Linux C++
【Linux系统编程】深入理解Linux中的chmod函数和mode_t类型
【Linux系统编程】深入理解Linux中的chmod函数和mode_t类型
450 0
用人话讲懂memcmp函数的理解和使用
用人话讲懂memcmp函数的理解和使用
|
存储 Windows
技术好文共享:(翻译)libusb
技术好文共享:(翻译)libusb
324 0
|
Linux 编译器 vr&ar
【库函数】Linux下动态库.so和静态库.a的生成和使用
【库函数】Linux下动态库.so和静态库.a的生成和使用
471 1
|
机器学习/深度学习 中间件 Linux
顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-语音识别(asr)接口
顶顶通呼叫中心中间件(mod_cti基于FreeSWITCH)-语音识别(asr)接口 接口说明
1058 108
|
运维 Kubernetes Nacos
nacos常见问题之服务注册IP白名单如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
329 0
|
消息中间件 Oracle 关系型数据库
Flink CDC 数据源问题之参数配置如何解决
Flink CDC数据源指的是使用Apache Flink的CDC特性来连接并捕获外部数据库变更数据的数据源;本合集将介绍如何配置和管理Flink CDC数据源,以及解决数据源连接和同步过程中遇到的问题。
281 0
下一篇
开通oss服务