当前位置: 首页 > news >正文

C 语言 字符相关函数学习

C语言的字符相关的函数很多很杂,,有些经常使用,有的就不怎么听说,本文将记录我学习到的部分函数。

一、字符分类函数

这里的函数都有种相似的面貌,都是is + 分类依据,包含在头文件 <ctype.h>

例如 isdigit,isspace,iscntrl,isalpha,isupper,islower 等

(注:图片乃 ai 生成)

1.函数的定义

int 函数名(想判断的字符);

函数名就暗示了你这个函数能分类什么样的字符,以islower 举例,当参数为小写字母时,函数返回一个非零的数字,参数为其他字符时,函数返回零

2.函数的作用

正如它的名字一样,就是用来分类字符的,可以联合多个字符分类函数以达到对文本的统计处理,还可以删去不想要的错误字符,

3.补充:字符转换函数

函数的定义为int 函数名(int c )

底层原理其实就是在判断 ASCII 码值,当其处于 26 个 小写(大写)字母的值区间时,对应减(加)32,得到相反的字母

二、字符串相关函数

下面主要讲解五种函数:

1.strlen()

参数是字符串,返回一个size_t类型的数字

作用是计算字符串除掉 '\0' 之前的字符数量,简单的模拟实现如图。

使用时注意返回值为无符号整数,想要用它做计算时需要先强制类型转换为整型。

2.strcpy()

它用来拷贝已有的字符

参数为两个指针,第二个指针为想要复制的字符串的起始字符的地址,第一个指针为拷贝到的字符串的存放位置的起始地址。

使用时需保证第一个指针所对应的数组的存储空间足够放下想拷贝的内容。

拷贝完后,第一个指针所对应的数组会有新的结束位置 '\0'. 其余之后的内容难以使用。

3.strcat()

这个函数用来连接两个字符串,第一个参数为想要拼接的字符串的首字符地址,第二个参数为想连接上的字符串。它会从第一个字符串的结尾 '\0' 处替换并连接新的字符串。

使用时得注意空间大小,参数顺序。

4.strcmp

如图所示,它的大小比较方式就是看两个数组的每一位字符的 ASCII 的大小,感觉很难用,不过多介绍。

加 n 的变体:

上述2-4的三个函数都有变化,在 str 后面加上 n 就可以限制拷贝,拼接以及比较的字符个数

第三个参数为无符号整型 ,对应 n

strncpy在 n 小于等于要拷贝的字符串小于等于时,会按需拷贝,不做额外改动,

n 大于要拷贝的字符串的strlen长度加1时,会在结尾补上 '\0'.

strncat 没有额外的补充,是多少接多少,多了就不填任何东西,对多的地方不做改动。

strcmp与strcat 类似,也不填东西,只比较存在的部分。

5.strstr

这个函数相当的有用,类似于浏览器的 ctrl + f ,在网页中查找东西。

第一个参数为要被查找的文本的首地址,第二个参数为要找的东西,

假如文本中有多个重复的查找物,只会返回第一次出现时的地址。

文本中没有查找物时,就返回空指针

6.还有一部分函数未写上来,之后会补充的

学习感受

文章最后记录一下寒假学习的感受,其实从昨天才开始接着学,被期末周和旅游稍微占用了近三周的时间。敲代码的感觉有点减少,但很快就找回来了,只是学的不如在学校有劲,效率也变低了。最近看了些学习视频,说是学习的起步阶段很难,但是贵在坚持,加油。

http://www.jsqmd.com/news/279758/

相关文章:

  • 基于STM32单片机智能指纹锁电子密码锁指纹识别门禁解锁设计件21(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • MATH Day 05 Applications amp;amp; Practice
  • 2026最新酱蟹推荐!上海/延吉优质酱蟹品牌权威榜单发布,匠心工艺与地道风味双优助力高品质韩式生腌体验
  • 2026最新生腌品牌推荐!上海/延吉地区优质生腌餐饮权威榜单发布,匠心风味与安全品质双保障的韩式生腌服务推荐
  • 隐私无忧,掌控随心:ToDesk隐私屏功能全方位解读
  • 财务审核规则自动化配置流程
  • 2026最新海鲜品牌推荐!上海/延吉优质韩式生腌海鲜权威榜单发布,品质与风味双优的生腌美食推荐
  • 【语法定义写法】BNF标记法
  • 向量数据库技术内核:从存储到检索,拆解其高效运作的秘密
  • 无人机电调模块选型指南
  • 文档抽取工具怎么用自然语言配置
  • 我做了一个本地AI搜索工具,今天正式开源了!
  • 【C++数据结构进阶】玩转并查集:从原理到实战,C++ 达成与高频面试题全解析
  • 我用 XinServer 给客户做后台,效率翻 3 倍
  • ARMxy BL335 智慧农业实践:秦安水蜜桃智慧种植与冷链保鲜一体化方案
  • 基于Python的出行路线规划与推荐系统的设计与实现-计算机毕业设计源码+无LW文档
  • 企业网盘可以在局域网使用吗?
  • Cortex-M系列,Cortex-A系列,汇编启动文件的区别
  • 中央音乐学院联合研究:视频自动配乐还卡点
  • Django项目,sqlite版本太低问题
  • 企业网盘收费吗?企业网盘收费标准
  • IVT 映像向量表, DCD 设备配置数据
  • 基于Python的大学生就业信息推荐系统的设计与实现-计算机毕业设计源码+无LW文档
  • 2026年国产冻干机厂家权威推荐榜:大型冻干机/实验室冻干机/真空冻干机/中试型冻干机/国产药用冻干机/真空冷冻冻干机选择指南
  • ollama
  • 深圳金鑫磁材|深圳坡莫合金磁芯:如何实现“磁导率”百万级跃升
  • 2026最新招投标系统、采购管理系统深水区:TOP5平台全景解析
  • WPF 用户控件(UserControl)继承
  • 什么网盘能够解决超大文件传输难题?
  • 2026年贵州装修设计公司TOP5推荐:三修设计工作室领衔口碑榜单