C语言—字符函数和字符串函数

1.字符分类函数

C语言中有一系列的函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的。

这些函数的使用都需要包含一个头文件 ctype.h。

例:将一句话中的小写字母改成大写字母。

2.字符转换函数

头文件:ctype.h

C语言提供了2个字符转换函数:

int  tolower(int c);//将参数传进去的大写字母转小写

int  toupper(int c);//将参数传进去的小写字母转大写

所以上述例题可以这些解决。

3. strlen 的使用和模拟实现

头文件:string.h

size_t  strlen(const char* str)

  • 字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包含‘\0’)。
  • 参数指向的字符串必须要以 '\0' 结束。
  • 注意函数的返回值为 size_t ,是无符号的(易错)
  • strlen 的使用需要包含头文件
  • 学会 strlen 函数的模拟实现。

注:size_t 的运算的最后的返回类型还是size_t(无符号整型)。

3.1 strlen 的模拟实现

1.计数器

2.指针

3.函数递归(没有创建第三变量)

4. strcpy 的使用和模拟实现

  • 源字符串必须以 ‘\0’ 结束。
  • 会将源字符串中的 '\0' 拷贝到目标空间
  • 目标空间必须足够大,以确保能存放源字符串
  • 目标空间必须可修改

4.1 模拟实现 strcpy

5. strcat 的使用和模拟实现

  • 源字符串必须以 ‘\0’ 结束。
  • 目标字符串也得有 '\0' ,否则没办法知道追加从哪里开始。
  • 目标空间必须有足够的大,能容纳下源字符串的内容。
  • 目标空间必须可修改。

5.1 模拟实现

那么,如果字符串自己给自己追加会怎么样呢?

在一些编译器中可能正常运行,但是在另一些编译器中,它可能就是无限循环下去了。

6. strcmp 的使用和模拟实现

  • 第一个字符串大于第二个字符串,则返回大于0的数字
  • 第一个字符串等于第二个字符串,则返回0
  • 第一个字符串小于第二个字符串,则返回小于0的数字

注:strncmp,strncat,strncpy。主要就是一个n的区别,请读者自行查看相关教程。

7. strtok 函数

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

  • sep参数指向一个字符串,定义了用作分隔符的字符集合
  • 第一个参数指定一个字符串,它包含了0个或者多个由sep字符串中一个或者多个分隔符分割的标记。
  • strtok函数找到str中的下一个标记,并将其用\0结尾,返回一个指向这个标记的指针。
  • strtok函数会改变被操作的字符串,所以被strtok函数切分的字符串一般都是临时拷贝的内容并且可以修改
  • strtok函数的第一个参数不为NULL,函数将找到str中的第一个标记,strtok函数将保存它在字符串中的位置。
  • strtok函数的第一个参数为NULL,函数将在同一个字符串中被保存的位置开始,查找下一个标记。
  • 如果字符串中不存在更多的标记,则返回NULL指针。

作者自述:本文主要针对C语言的字符串函数的知识。内容中包含了很多总结内容。本文制作不易,求求动动你们发财的小手点个赞和关注,这是对我创造最大的动力。后续我也会跟进内容,尽量一周至少一次,保证内容的质量。如果有想知道的内容或者有建议的地方,欢迎后台私信或者在本文留言哦。感谢各位的支持捏Thanks♪(・ω・)ノ。

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

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

相关文章

【数据集划分】假如你有超百万条oracle数据库数据(成真版)

【数据集划分】假如你有接近百万条oracle数据库数据(成真版) 写在最前面小结 数据集划分原因注意事项 1. 留出法(Hold-out Method)原理算法复杂度代码示例Scikit-learn的train_test_split分布式计算框架(如Apache Spar…

JVMの垃圾回收

在上一篇中,介绍了JVM组件中的运行时数据区域,这一篇主要介绍垃圾回收器 JVM架构图: 1、垃圾回收概述 在第一篇中介绍JVM特点时,有提到过内存管理,即Java语言相对于C,C进行的优化,可以在适当的…

DRIVEN|15分的CNN+LightGBM怎么做特征分类,适用于转录组

说在前面 今天分享一篇做深度学习模型的文章,这是一篇软硬结合的研究,排除转换实体产品,我们做生信基础研究的可以学习模仿这个算法,适用且不局限于临床资料,转录组数据,GWAS数据。 今天给大家分享的一篇文…

用香橙派AIpro部署大模型、安装宝塔搭建私有随身WEB开发环境

什么是香橙派 Orange Pi AI Pro 开发板是香橙派联合华为精心打造的高性能 AI 开发板,其搭载了昇腾 AI 处理器,可提供 8TOPS INT8 的计算能力,内存提供了 8GB 和 16GB两种版本。可以实现图像、视频等多种数据分析与推理计算,可广泛…

JL-8B/2211电流继电器 带板前接线底座 约瑟JOSEF

JL-8集成电路电流继电器 系列型号 JL-8A/11集成电路电流继电器;JL-8B/11集成电路电流继电器; JL-8A/12集成电路电流继电器;JL-8B/12集成电路电流继电器; JL-8A/13集成电路电流继电器;JL-8B/13集成电路电流继电器; JL-8A/21集成电路电流继电器;JL-8B/21集成电路电流继电器; JL-…

Mamba v2诞生:1 儒(Transformers)释(SSD)道(Mamba)本是一家?!

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型新阅读。而最新科技(Mamba,xLSTM,KAN)则提…

RPA-UiBot6.0数据采集机器人(海量信息一网打尽)内附RPA师资培训课程

前言 友友们是否曾为海量的数据信息而头疼,不知道如何从中精准抓取你所需的数据?小北的这篇博客将为你揭晓答案,让我们一起学习如何运用RPA数据采集机器人,轻松实现海量信息的快速抓取与整理,助力你的工作效率翻倍! 诚邀各位友友参与小北博客的评论,共同开启自动…

传输大咖24|镭速传输揭秘:确保UDP数据完整性的先进策略

在现代网络通信中,UDP(User Datagram Protocol)因其低延迟和高效率的特点而受到青睐,尤其是在需要快速传输大量数据的场景中。然而,UDP协议本身并不保证数据的可靠性和一致性,这就要求使用UDP进行数据传输的…

【JAVASE】异常(下)

四:异常的处理 (2)try-catch捕获并处理 throws 对异常并没有处理,而是将异常报告给抛出异常方法的调用者,由调用者处理。如果真正要对异常进行处理,就需要try-catch 语法格式: 语法格式&#…

springcloud Feign调用拦截器(统一处理拷贝请求头实现透传信息、内部调用鉴权、打印feign调用)

springcloud Feign调用拦截器(统一处理拷贝请求头实现透传信息、内部调用鉴权、打印feign调用日志) 实现接口Feign.RequestInterceptor 实现接口 feign.RequestInterceptor 并注入到IOC容器即可生效 示范代码如下 拷贝请求头,将原请求信…

SVN安装详细教程

📖SVN安装详细教程 ✅1. 下载✅2. 安装✅3. 使用 ✅1. 下载 官方地址:https://tortoisesvn.net/downloads.html 123云盘地址:https://www.123pan.com/s/4brbVv-rsoWA.html ✅2. 安装 双击TortoiseSVN-1.14.6.29673-x64-svn-1.14.3.msi安装…

宇宙数字宣布2023年上半年盈利翻倍,数字货币挖矿业务持续增长

2023年3月8日宇宙数字公司在2023年上半年盈利翻倍的消息,彰显了该公司在数字货币挖矿领域的卓越表现和领先地位。这一成就是宇宙数字创新研发策略成功的明证,同时也体现了其高效能挖矿产品和解决方案在全球市场的广泛认可和需求。 随着数字货币市场的持续变化和发展,宇宙数字公…

【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU

持续学习&持续更新中… 学习态度:守破离 【雷丰阳-谷粒商城 】【分布式基础篇-全栈开发篇】【06】【商品服务】接口文档地址_三级分类_SPU_SKU 接口文档地址三级分类效果图建表后台组建数据的树形结构在人人(后台管理系统)中实现管理商品的三级分类路径规则使用…

声临其境!当ChatTTS遇上腾讯云HAI,定制你的专属智能语音服务

引言 ​ 「语音」作为人工智能的「启蒙钥匙」,不仅率先踏出实验室大门,步入寻常百姓家,也成为了人类与AI初次触电的「桥接技术」。初期,智能语音技术的研究重心落在了语音识别领域,致力于使机器具备理解人类语言的能…

身份证数字识别DBNET

采用DBNET检测身份证数字所在区域,然后使用切割字符的方法,使用PCASVM训练和分类,支持C/PYTHON开发,只需要OPENCV 身份证数字识别DBNETPCASVM

【ARM Cache 及 MMU 系列文章 6 -- Cache 寄存器 CTR | CLIDR | CCSIDR | CSSELR 使用详解 1】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 Cache 常用寄存器Cache CSSELR 寄存器Cache CSSELR 使用场景Cache CSSELR 操作示例 Cache CLIDR 寄存器LoUU 介绍LoUU 使用 LoUIS 介绍CLIDR 使用 Cache CCSIDR 寄存器 Cache 常用寄存…

mysql引入表名称的注意事项

1、遇到问题 mapper中的文件是这样的 解析出来的sql是这样的 sql显示为:select * from ‘tableName’ 2、解决方法 mapper文件种使用${tableName}而不是#{tableName}

网工内推 | 联通公司,云计算售前,AWS认证优先

01 联通数字科技有限公司 🔷招聘岗位:云计算售前工程师 🔷职责描述: 1.了解私有云,公有云,混合云等云计算技术知识,了解云计算行业现状及发展趋势。 2.承担区域项目售前工作支持,为…

【iOS】UI学习——UITableView

UI学习(四) UITableView基础UITableView协议UITableView高级协议和单元格 UITableView基础 dateSource:数据代理对象 delegate:普通代理对象 numberOfSectionInTableView:获得组数协议 numberOfRowsInSection:获得行数协议 cellForRowAtIndexPath:创建单…

ORPC-851(工业级)晶体管光耦,兼容替代LTV-851、PC851

提供隔离反馈 逻辑电路之间的接口 带基极引脚高可靠晶体管输出光耦 电平转换 DC和AC输入 SMPS中的调节反馈电路 消除接地环路 特征 电流传输比 ( CTR : 最低 50% IF 5mA, VCE 5V ) 宽工作温度范围 -55~100C 高输入输出隔离…