C语言 -- 字符串中根据特定字符(串)分割


版权

C语言字符串操作函数有很多,这里举出需要用到的,其他请自行查找。

1、len = strlen(p) ;//取字符串长度 

原型:size_t strlen(const char *s);  功能:统计字符串string中字符的个数,字符串的长度在 size_t  返回值中。

注意:strlen函数的功能是计算字符串的实际长度,不包括'\0'在内。另外,strlen函数也可以直接测试字符串常量的长度,如:strlen("HelloWorld")。

2、p1 = strchr(p, c);// 在字符串中查找指定字符 

原型:char *strchr(const char *s, int c);

查找字  串string中首次出现的位置, NULL结束符也包含在查找中.  返回一个指针, 指向字符c在字符串string中首次出现的位置, 如果没有找到, 则返回NULL. 
p1 = strrchr(p, c);// 在字符串中反向查找 

原型:char *strrchr(const char *s, int c);

查找字符c在字符串string中最后一次出现的位置, 也就是对string进行反序搜索, 包含NULL结束符.  

3、p2 = strstr(p, p1) ;// 查找字符串

原型:char *strstr(const char *haystack, const char *needle);
在字符串haystack中查找needle子串.  返回子串needle在haystack中首次出现位置的指针. 如果没有找到子串needle, 则返回NULL. 如果子串needle为空串, 函数返回haystack.

4、strncpy(p, p1, n);//  复制指定长度字符串 

原型:char *strncpy(char *dest, const char *src, size_t n);

另外一个:char *strcpy(char *dest, const char *src);

strncpy:将字符串src中前n个字符拷贝到字符串dest中。

strcpy:将字符串src中字符拷贝到字符串dest中。

那么,在一个母串中查找关键字符(串),然后根据这个字符(串)将母串分割成若干个子字符串,则代码可以这样写:

#include #include #include int main(int agrc, const char *argv){	char *p = "177:aaaa:001122....;178:bbbb:001122....;179:cccc:001122....";int i = 0, j = 0;char tmp[32][32] = {0};char *p1 = (char *)malloc(1024);while((p1 = strchr(p, ';')) != NULL){strncpy(tmp[i], p, strlen(p) - strlen(p1));p = p1   1;i   ;}strncpy(tmp[i], p, strlen(p));for(j = 0; j <= i; j  ) printf("tmp[%d] = %s\n", j, tmp[j]);return 0;}

 

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

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

相关文章

javaone_JavaOne 2014:会议与合同利益冲突

javaone杜克街咖啡馆&#xff0c;工程师可以在街上进行走廊交谈 。 与签约不兼容 我的第11届JavaOne会议&#xff08;2004年至2014年为11 10 1&#xff09;非常出色。 值得参加此活动并结识社区中所有的人。 现在&#xff0c;这里是绅士的&#xff0c;但 。 除了经济上的明显…

什么流读取MultipartFile_深入理解并运用Node中的IO模型流

在 NodeJs 中&#xff0c;流随处可见&#xff0c;读/写文件流&#xff0c;HTTP请求/返回流&#xff0c;stdin/stdout流。理解并运用好流会让你的Node更具力量。Streamlib/_stream_readable.jslib/_stream_writable.jslib/_stream_tranform.jslib/_stream_duplex.js流主要有可读…

android状态机是线程么,Java中的线程状态机 - java

有没有一种方法可以将线程保留在状态中等待更改&#xff1f;我的意思是&#xff0c;等一下事情发生了(更改var&#xff0c;调用方法等)。也许它需要使用事件监听器或同步的对象/方法。这样的状态机通常的方法statemachine example它使用一个do {..} while(true)循环&#xff0c…

C 线程的创建

前言线程创建很容易&#xff0c;直接调用std::thread&#xff0c;就创建一个新线程了。该线程拿到任务后立即开始执行。线程的创建者&#xff08;父线程&#xff09;必须管理创建的线程&#xff08;子线程&#xff09;&#xff0c;应该等到子线程完成其任务或者让子线程从自己身…

apache karaf_未来是Apache Karaf上的微服务架构

apache karaf这是Jamie Goodyear的客座博客文章&#xff08; 博客 &#xff0c; icbts &#xff09;。 他是Savoir Technologies的开源倡导者&#xff0c;Apache开发人员和计算机系统分析师&#xff1b; 他为全球大型组织设计&#xff0c;批判和支持了体系结构。 他拥有纽芬兰…

AppScan api登录接口 postman_如何通过Postman调用EDI系统的API?

知行EDI系统主要是用来实现贸易双方的数据交换的过程&#xff0c;这个过程中&#xff0c;贸易双方往往需要根据国际通用的消息格式收发信息&#xff0c;我们称符合国际规范的消息文件为EDI报文&#xff0c;然而不同的公司会结合ERP的接口情况选择不同的集成方式&#xff0c;例如…

指针函数和函数指针

概述指针函数和函数指针是C语言里两个比较绕的概念。但是不仅面试题爱考&#xff0c;实际应用中也比较广泛。很多人因为搞不清这两个概念&#xff0c;干脆就避而远之&#xff0c;我刚接触C语言的时候对这两个概念也比较模糊&#xff0c;特别是当指针函数、函数指针、函数指针变…

android显示绘图动画,Android自定义View绘图实现渐隐动画

实现了一个有趣的小东西&#xff1a;使用自定义view绘图&#xff0c;一边画线&#xff0c;画出的线条渐渐变淡&#xff0c;直到消失。效果如下图所示&#xff1a;用属性动画或者渐变填充(shader)可以做到一笔一笔的变化&#xff0c;但要想一笔渐变(手指不抬起边画边渐隐)&#…

csrf spring_无状态Spring安全性第1部分:无状态CSRF保护

csrf spring如今&#xff0c;随着RESTful架构变得越来越标准&#xff0c;可能值得花一些时间重新考虑当前的安全方法。 在这一小系列博客文章中&#xff0c;我们将探索以无状态方式解决与Web相关的安全性问题的几种相对较新的方法。 这第一篇文章是关于保护您的网站免受跨站请求…

python网络编程项目_python网络编程详解

最近在看《UNIX网络编程 卷1》和《FREEBSD操作系统设计与实现》这两本书&#xff0c;我重点关注了TCP协议相关的内容&#xff0c;结合自己后台开发的经验&#xff0c;写下这篇文章&#xff0c;一方面是为了帮助有需要的人&#xff0c;更重要的是方便自己整理思路&#xff0c;加…

C - 指针总结

指针是什么&#xff1f;指针是一变量或函数的内存地址&#xff0c;是一个无符号整数&#xff0c;它是以系统寻址范围为取值范围&#xff0c;32位&#xff0c;4字节。指针变量&#xff1a;存放地址的变量。在C 中&#xff0c;指针变量只有有了明确的指向才有意义。指针类型int* …

android网络转圈,android基于dialog加载时转圈圈很好的demo

【实例简介】这是一个android基于dialog加载时转圈圈很好的完整demo&#xff0c;很适合新手学习&#xff0c;希望对有需要的朋友能得到帮助【实例截图】【核心代码】dialog_anim└── dialog_anim├── AndroidManifest.xml├── bin│ ├── AndroidManifest.xml│ ├…

spring期刊状态_无状态Spring安全性第2部分:无状态认证

spring期刊状态Spring Stateless Security系列的第二部分是关于以无状态方式探索身份验证的方法。 如果您错过了有关CSRF的第一部分&#xff0c;可以在这里找到。 因此&#xff0c;在谈论身份验证时&#xff0c;其全部内容就是让客户端以可验证的方式向服务器标识自己。 通常&…

分享10个值得关注的C语言开源项目

来源于网络&#xff0c;如有侵权&#xff0c;告知必删。

python3 x默认使用的编码_python3默认使用什么编码

python3默认编码为unicode&#xff0c;由str类型进行表示。二进制数据使用byte类型表示。 字符串通过编码转换成字节码&#xff0c;字节码通过解码成为字符串encode&#xff1a;str --> bytes&#xff08;推荐学习&#xff1a;Python视频教程&#xff09; decode&#xff1a…

html中写css代码,开发DIV CSS时 先写CSS代码还是先写HTML代码

相信良多&#xff2c;&#xff2f;&#xff36;&#xff25;用DIVCSS技术启示重构网页的爱好者友好&#xff0c;在起源学习DIVCSS的时分都邑想一个标题&#xff0c;想晓得DIVCSS妙手或有教育者在开发制作html页面的时刻&#xff0c;下场是先写html照样先写css&#xff1f;带着这…

象棋子 设计模式_通过设计国际象棋游戏了解策略模式

象棋子 设计模式今天&#xff0c;我们将借助一个示例来尝试了解策略模式。 我们将考虑的示例是国际象棋游戏。 这里的目的是解释策略模式&#xff0c;而不是构建全面的国际象棋游戏解决方案。 策略模式&#xff1a;策略模式被称为行为模式–用于管理对象之间的算法&#xff0…

入门C语言10问10答

1 如何理解变量与常量?变量与常量相当于数据的可读可写与只读&#xff0c;常量是数据的一种保护机制。在内存分配给程序的内存块中有专门的常量&#xff08;只读&#xff09;存储区。2 整型数据的溢出问题任何一种数据类型的数据在计算机中都有它确定的数值表示范围&#xff0…

mac json格式化工具_简洁好用的工具都是相似的

大家好&#xff0c;我是你们的章鱼猫。不知道大家了不了解 jq 这个工具呢&#xff1f;指的不是 JQuery&#xff0c;而是一个命令行工具。jq 是一个轻量级而且灵活的命令行 JSON 解析器&#xff0c;类似用于 JSON 数据的 sed 工具。我们来看一下使用 jq 处理 json 的基本用法(更…

android 撑满剩余空间,怎么让LinearLayout占据父布局的所有剩余空间

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:layout_height"match_parent"android:paddingBottom"dimen/activity_vertical_margin"androi…