strtok()函数的使用方法

`strtok()` 函数用于将字符串分割成子字符串(标记)。它在 C 语言中非常常用,可以通过指定分隔符来拆分原始字符串,并依次返回每个子字符串。

以下是 `strtok()` 函数的使用方法:

#include <stdio.h>
#include <string.h>int main() {//原始字符串char str[] = "apple,banana,cherry";char *token;// 使用 strtok() 函数分割字符串// 第一次调用需要传入原始字符串,并指定分隔符token = strtok(str, ",");// 继续调用 strtok() 函数获取下一个子字符串// NULL 参数表示继续使用之前传入的原始字符串while (token != NULL) {printf("Token: %s\n", token);token = strtok(NULL, ",");}return 0;
}

 

在上面的示例中,我们首先定义了一个原始字符串 `str`,其中包含了多个水果名称,这些名称使用逗号分隔。然后,我们使用 `strtok()` 函数将原始字符串分割成子字符串。

`strtok()` 函数的使用方法如下:

1. 首次调用 `strtok()` 时,传入原始字符串作为第一个参数,并指定分隔符作为第二个参数。这个调用会返回第一个子字符串。

2. 后续调用 `strtok(NULL, 分隔符)`,其中第一个参数传入 NULL,表示继续使用之前传入的原始字符串。这将返回下一个子字符串,直到没有更多的子字符串为止。

请注意以下几点:

- `strtok()` 函数会修改原始字符串,将分隔符替换为 NULL 字符 ('\0'),因此在使用时要小心,不要在原始字符串上进行其他操作。

- 如果没有更多的子字符串可供分割,`strtok()` 返回 `NULL`,因此你可以使用 `while` 循环来遍历所有子字符串。

- 如果要使用不同的分隔符,可以多次调用 `strtok()`,每次使用一个不同的分隔符。

- 如果原始字符串中包含连续的分隔符(如多个逗号连在一起),`strtok()` 会将它们视为一个分隔符,并在分隔符之间返回空字符串。

- 要注意,strtok() 不是线程安全的函数,如果在多个线程中使用,可能需要采取额外的措施来确保线程安全性

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/85468.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python方法汇总:轻松实现功能!

在爬虫开发中&#xff0c;有时需要模拟登录网站以获取更多的数据或执行特定的操作。本文将为你总结几种常用的Python爬虫模拟登录方法&#xff0c;帮助你轻松实现登录功能&#xff0c;让你的爬虫更加强大有用。 一、基于Requests库的模拟登录 1. 使用Session对象&#xff1a;…

UOS Deepin Ubuntu Linux 开启 ssh 远程登录

UOS Deepin Ubuntu Linux 开启 ssh 远程登录 打开控制台 安装 openssh-server sudo apt -y install openssh-server修改 /etc/ssh/ssh_config 文件 sudo vim /etc/ssh/ssh_config找到 # Port 22 去掉 # 注释后 保存 重启 ssh 服务 sudo systemctl restart ssh设置 ssh 服务 开机…

数据治理-科特的重大变革八步法

约翰科特是变革管理领域最受尊敬的研究者之一,他在《领导变革》一书中总结了组织执行变革遭遇失败的八大误区。对信息管理和数据管理环境下经常出现的问题具有参考意义。 误区 过于自满 组织变革时人们所犯的最大的错误,是尚未在同事和上级中建立足够高的紧迫感的情况下就冒…

Hoeffing不等式

在李航老师的统计学习方法&#xff08;第一版中&#xff09; H o e f f i n g 不等式 Hoeffing不等式 Hoeffing不等式是这样子给出的 设 X 1 , X 2 , . . . , X N X_1,X_2,...,X_N X1​,X2​,...,XN​是独立随机变量&#xff0c;且 X i ∈ [ a i , b i ] , i 1 , 2 , . . . ,…

servlet实现登录功能【当用户当前未登陆,跳转登录页面才能访问,若已经登录了,才可以直接访问】

1. 前端 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title> </head> <body><form action"login" method"POST"><input type"text&q…

ros开发中编译cpp文件的2个办法

方式一&#xff1a; 在Ubuntu控制台输入指令 cd catkin_ws 进入到工作空间 然后在输入&#xff1a; catkin_make --pkg catkin_practice 注释&#xff1a;以上catkin_ws是工作空间名称&#xff0c;catkin_practice是工作空间中将要被编译的包的名称 方式二&#xff1a; …

Java 基本数据类型

目录 Java 基本数据类型 内置数据类型 引用类型 Java常量 Java 基本数据类型 变量就是申请内存来存储值。也就是说&#xff0c;当创建变量的时候&#xff0c;需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间&#xff0c;分配的空间只能用来储存该类型…

获取唯一的短邀请码

/*** 获取唯一的邀请码** return the string*/private String generateUserUniqueShareCode() {Set<String> arr getSetArr();String code;do {code generateCode(arr);} while (isCodeUserExists(code));return code;}/*** Gets set arr.** return the set arr*/NotNu…

极客时间:左耳听风【文章笔记 思考总结】

本篇博客是学习过程中的笔记、思考和总结。原文链接&#xff1a;https://time.geekbang.org/column/intro/100002201 开篇词 | 洞悉技术的本质&#xff0c;享受科技的乐趣01 | 程序员如何用技术变现&#xff08;上&#xff09;02 | 程序员如何用技术变现&#xff08;下&#xf…

glibc: strlcpy

https://zine.dev/2023/07/strlcpy-and-strlcat-added-to-glibc/ https://sourceware.org/git/?pglibc.git;acommit;h454a20c8756c9c1d55419153255fc7692b3d2199 https://linux.die.net/man/3/strlcpy https://lwn.net/Articles/612244/ 从这里看&#xff0c;这个strlcpy、st…

前端控制小数点精度及数字千位分割

前端控制小数点精度及数字千位分割&#xff0c;表头居中&#xff0c;每行单元格内容居右。 前端控制小数点精度&#xff1a; <el-table-column prop"cycz" label"差异产值" header-align"center" align"right"><template s…

JVM高级性能调试

标准的JVM是配置为了高吞吐量&#xff0c;吞吐量是为了科学计算和后台运行使用&#xff0c;而互联网商业应用&#xff0c;更多是为追求更短的响应时间&#xff0c;更低的延迟Latency&#xff08;说白了就是更快速度&#xff09;&#xff0c;当用户打开网页没有快速响应&#xf…

安卓机型-MTK芯片掉串码 掉基带 如何用工具进行修复 改写参数

在早期MTK芯片机型中较多使用AP BP方式来修复mtk芯片机型的串码。目前MTK机型对于丢基带 掉串码问题大都使用MODEM META工具来进行修复串码或者改写参数。今天以一款mtk芯片机型来做个演示&#xff0c; 高通芯片类的可以参考; 高通改串相关 工具仅支持在联发科芯片组上运行的…

经纬度相关计算

最近在做经纬度相关的需求&#xff0c;遇到了2个需求。 1、根据2个经纬度计算之间的距离 2、根据1个经纬度&#xff0c;一个距离&#xff0c;求另一个经纬度 我找了好久&#xff0c;没有发现能用的api&#xff0c;高德官方貌似也没有给java的工具文档&#xff0c;希望官方能支持…

WEB使用VUE3实现地图导航跳转

我们在用手机查看网页时可以通过传入经纬度去设置目的地然后跳转到对应的地图导航软件&#xff0c;如果没有下载软件则会跳转到下载界面 注意&#xff1a; 高德地图是一定会跳转到一个新网页然后去询问用户是否需要打开软件百度和腾讯地图是直接调用软件的这个方法有缺陷&…

iOS——引用计数(一)

自动引用计数 自动引用计数&#xff08;ARC&#xff0c;Automatic Reference Counting&#xff09;是指内存管理中对引用采取自动计数的技术。 满足以下要求后&#xff0c;我们的代码就无需再次键入retain或者是release代码了&#xff1a; 使用Xcode 4.2或以上版本使用LLVM编…

Android 启动优化案例:WebView非预期初始化排查

去年年底做启动优化时&#xff0c;有个比较好玩的 case 给大家分享下&#xff0c;希望大家能从我的分享里 get 到我在做一些问题排查修复时是怎么看上去又low又土又高效的。 1. 现象 在我们使用 Perfetto 进行app 启动过程性能观测时&#xff0c;在 UI 线程发现了一段 几十毫…

Docker注入环境变量且设置多个环境变量

方式一 运行docker命令修改 在运行docker时&#xff0c;直接使用-e或–env&#xff0c;输入需要改变的变量 例如&#xff1a;springboot配置文件如下,可注入环境变量启动端口SERVER_PORT&#xff0c;以及启动配置文件NODE_ENV:dev server:port: ${SERVER_PORT:8400} spring…

mysql 每日自动备份数据库

在 MySQL 中&#xff0c;你可以使用定时任务来每日自动备份数据库。通常&#xff0c;最常用的方法是使用操作系统的定时任务工具&#xff08;如cron&#xff09;来调度备份操作。以下是一些步骤来设置每日定时备份MySQL数据库&#xff1a; 创建备份脚本&#xff1a;首先&#x…

Mybatis分页框架-PageHelper

Mybatis分页框架-PageHelper 一、PageHelper基础使用1.引入jar包2.配置conifg3.测试使用 二、PageHelper的多种用法1.使用PageHelper.startPage传入对象2.不使用PageHelper.startPage,而使用PageHelper.offsetPage3.使用Lambda进行分页4.不使用PageHelper直接分页5.想要使用分页…