C语言-字符串分割函数 strtok、strtok_r

一、函数介绍

  1. 函数名
strtok, strtok_r - extract tokens from strings
//从字符串中提取标记
  1. 头文件
 #include <string.h>
  1. 文件原型
char *strtok(char *str, const char *delim);char *strtok_r(char *str, const char *delim, char **saveptr);

二、测试代码

  1. 官方代码:
#include <stdio.h>#include <stdlib.h>#include <string.h>int main(int argc, char *argv[])
{char *str1, *str2, *token, *subtoken;char *saveptr1, *saveptr2;int j;if (argc != 4) {fprintf(stderr, "Usage: %s string delim subdelim\n",argv[0]);exit(EXIT_FAILURE);}for (j = 1, str1 = argv[1]; ; j++, str1 = NULL) {token = strtok_r(str1, argv[2], &saveptr1);if (token == NULL)break;printf("%d: %s\n", j, token);for (str2 = token; ; str2 = NULL) {subtoken = strtok_r(str2, argv[3], &saveptr2);if (subtoken == NULL)break;printf(" --> %s\n", subtoken);}}exit(EXIT_SUCCESS);
}

编译输出可执行文件a.out,输入指令

./a.out 'a/bbb///cc;xxx:yyy:' ':;' '/'

在这里插入图片描述

  1. 自测代码
#include <string.h> 
#include <stdio.h> int main(void) 
{ char input[16] = "abc,d,D,E"; char *p; // strtok places a NULL terminator in front of the token, if found  p = strtok(input, ","); if (p)   printf("%s\n", p); // A second call to strtok using a NULL as the first parameter returns a pointer to the character following the token  //p = strtok(NULL, ","); //if (p)   printf("%s\n", p); //p = strtok(NULL, ","); //if (p)   printf("%s\n", p); //p = strtok(NULL, ","); //if (p)   printf("%s\n", p); while(p = strtok(NULL, ",")){printf("%s\n", p);} return 0; 
} 

测试结果:
在这里插入图片描述

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

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

相关文章

外网连接配置及acl配置使用

外网连接 在路由器上进行配置 配置nat功能 NAT配置&#xff1a; [R1]acl basic 2000 创建acl规则 编号为2000 [R1-acl-ipv4-basic-2000]rule 0 permit source any 允许所有数据包 [R1-acl-ipv4-basic-2000]quit [R1]nat address-group 1 配置出接口转换地址 [R…

Unity-场景

创建场景 创建新的场景后&#xff1a; 文件 -> 生成设置 -> Build中的场景 -> 将项目中需要使用的场景拖进去 SceneTest public class SceneTest : MonoBehaviour {// Start is called before the first frame updatevoid Start(){// 两个类&#xff1a; 场景类、场…

广告灯的左移右移

1&#xff0e;  实验任务 做单一灯的左移右移&#xff0c;硬件电路如图4.4.1所示&#xff0c;八个发光二极管L1&#xff0d;L8分别接在单片机的P1.0&#xff0d;P1.7接口上&#xff0c;输出“0”时&#xff0c;发光二极管亮&#xff0c;开始时&#xff0c;P1.0→P1.1→P1.2→…

clang-format

Clang-format 格式化代码 # ubuntu sudo apt-get install clang-format # vscode 插件 搜索 Clang-Format 安装 # 打开设置, 扩展->C/C/Formatting 粘贴/保存时自动格式化# 导出配置 clang-format -stylellvm -dump-config > ~/xx/xx/.clang-formatvi ~/.clang-format …

【分享】MathWorks中国汽车年会:“软件定义汽车”

从软件赋能到软件定义&#xff0c;汽车行业不仅需要解决诸如错误发现滞后带来的高昂代价、功能融合所需的跨学科知识、功能安全与实施成本之间的权衡等老问题&#xff0c;也面临着新的挑战&#xff1a;软件复杂度的不断提升、利用数据驱动创造价值、人工智能的引入和实现、数字…

transbigdata笔记:清理研究区域内的轨迹漂移

1 方法介绍 transbigdata 考虑了三种轨迹漂移&#xff0c;需要被清理 速度阈值&#xff1a;如果当前轨迹数据点与之前&#xff08;和后续&#xff09;轨迹数据点之间的速度超过阈值&#xff0c;则视为漂移。 距离阈值&#xff1a;如果当前轨迹数据点与上一个&#xff08;和后…

统计学-R语言-6.2

文章目录 前言总体均值的区间估计两个总体均值之差的估计两个总体均值之差的估计&#xff08;独立大样本的估计&#xff09;两个总体均值之差的估计&#xff08;独立小样本的估计&#xff09;两个总体均值之差的估计&#xff08;配对样本的估计&#xff09; 总体比例的区间估计…

python数字图像处理基础(九)——特征匹配

目录 蛮力匹配&#xff08;ORB匹配&#xff09;RANSAC算法全景图像拼接 蛮力匹配&#xff08;ORB匹配&#xff09; Brute-Force匹配非常简单&#xff0c;首先在第一幅图像中选取一个关键点然后依次与第二幅图像的每个关键点进行&#xff08;描述符&#xff09;距离测试&#x…

前端-基础 表格标签 总结

目录 表格的相关标签 &#xff1a; 表格的相关属性 合并单元格 &#xff1a; 表格的相关标签 &#xff1a; 表格标签 - <table> 行标签 - <tr> 单元格标签 - <td> 表头单元格标签 - <th> 表格结构标签 表头区域标签 - < thead >…

MySQL 查询数据

今天介绍一下 MySQL 数据库使用 SELECT 语句来查询数据。 语法 首先&#xff0c;介绍一下语法。以下为在 MySQL 数据库中查询数据通用的 SELECT 语法&#xff1a; SELECT column1, column2, ... FROM table_name [WHERE condition] [ORDER BY column_name [ASC | DESC]] [LI…

【算法】递归

递归 递归初始递归&#xff1a;数列求和递归的应用&#xff1a;任意进制转换递归深度限制递归可视化&#xff1a;分形树递归可视化&#xff1a;谢尔宾斯基Sierpinski三角形递归的应用&#xff1a;汉诺塔递归的应用&#xff1a;探索迷宫 分治策略和递归优化问题兑换最少个数硬币…

k8s和knative的区别与联系

目录 什么是k8s 什么事knative 区别与联系 联系 区别 什么是k8s k8s是容器编排引擎和管理器。 其主要功能特性有&#xff1a;服务发现&#xff08;提供ip&#xff09;和负载均衡&#xff0c;存储编排&#xff0c;自动推出和回滚&#xff0c;自我修复&#xff0c;自动装箱…

交换两个int变量的值,不能使用第三个变量。即a=3,b=5,交换之后a=5,b=3。

//法一&#xff08;正常方法&#xff09; int main() {int a 3;int b 5;int tmp 0;//临时变量printf("before:a%d b%d\n", a, b);tmp a;a b;b tmp;printf("after:a%d b%d\n", a, b);return 0; } //法二&#xff08;加减法&#xff09; 有缺陷 aab超出…

Vue 3 hooks的基本使用及疑问

前言 vue3也用过一段时间了&#xff0c;hooks听说过&#xff0c;但是一直没有用过。公司的前端项目里也没有相应的应用&#xff0c;因此打算系统的学习一下。 hooks与普通函数的区别 以实现一个加法功能为例。 普通函数未抽离 <template><div class"box&quo…

大游戏并发使用什么阿里云服务器配置?

阿里云服务器配置如何选择&#xff1f;用于高性能计算或大游戏并发&#xff0c;可选择企业级第七代云服务器计算型g7、ECS计算型c7、内存型r7独享型云服务器&#xff0c;CPU采用第三代Intel Xeon可扩展处理器&#xff08;Ice Lake&#xff09;&#xff0c;基频2.7 GHz&#xff…

Java开发的审批流系统,前端使用vue,支持常态化工作审批流程

一、项目形式 springbootvueactiviti集成了activiti在线编辑器&#xff0c;快速开发平台&#xff0c;可插拔工作流服务。 二、项目介绍 本项目拥有用户管理&#xff0c;部门管理&#xff0c;代码生成&#xff0c;系统监管&#xff0c;报表&#xff0c;大屏展示&#xff0c;业…

代码随想录算法训练营第二十四天 | 回溯算法终于开始了!77. 组合

回溯算法终于开始了&#xff01; 题目链接&#xff1a;leetcode 77. 组合 文章讲解&#xff1a;代码随想录 77. 组合讲解 视频讲解&#xff1a;带你学透回溯算法-组合问题&#xff08;对应力扣题目&#xff1a;77.组合&#xff09; 思路和解法 题目&#xff1a; 给定两个整…

贝塞尔曲线(Bezier Curve)原理、公式推导及matlab代码实现

目录 参考链接 定义 直观理解 公式推导 一次贝塞尔曲线&#xff08;线性公式&#xff09; 二次贝塞尔曲线&#xff08;二次方公式&#xff09; 三次贝塞尔曲线&#xff08;三次方公式&#xff09; n次贝塞尔曲线&#xff08;一般参数公式&#xff09; 代码实现 参考链接…

C语言入门第二节-概述C语言

C语言入门第二节-概述C语言 一.C语言的程序结构 1.当前最新的C语言标准为c11&#xff0c;在他之前的C语言标准为c99&#xff1b; 2.结构主要包括&#xff1a;1.预处理指令&#xff0c;2.函数&#xff0c;3,变量&#xff0c;4.语向和表达式&#xff0c;5.注释 #include<std…

基于局部信息提取的人脸标志检测算法matlab仿真

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 人脸检测 4.2 局部区域选择 4.3 特征提取 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .........................................…