字符函数和字符串函数

一·字符函数

1.字符分类函数

顾名思义就是帮助我们分类字符的!它们都包含在<ctype.h>的头文件中。
在这里插入图片描述
如图:“isdigit”就是判断字符是否是‘0’~‘9’的字符
在这里插入图片描述在这里插入图片描述

那如此我们就可实现把字符串中的大小写进行转换,如图:

在这里插入图片描述

2.字符转换函数

顾名思义就是帮助我们转换字符的!效果和上面我们实现的是一样的,大家可以去试一试!在这里插入图片描述

二·字符串函数

它们的头文件都包含在<string.h>中!

1.strlen的三种模拟实现

strlen的解析

在这里插入图片描述

首先它的返回值是size_t类型(是无符号整型),它的参数被const修饰(为了传进去的字符串不被更改),它的作用是:从给的地址开始计算到\0之前的字符串长度

如图:来比较一下strlen的返回值

在这里插入图片描述
这里 **strlen(“asd”) - strlen(“askjhdfas”)**明明 3<9 那为什么打印出来是“>”呢?这就是strlen的返回值的问题了
无符号整型“3”-无符号整型’9‘=无符号整型’-6‘,而-6是以补码的形式存储在计算机的,计算下来是一个很大的数反正一定比0大所以这里是">‘’。如图:在这里插入图片描述

方法一:指针-指针

之前说过指针相减的绝对值是两个指针之间的距离,那么就可以用来计算字符串的长度,如图:在这里插入图片描述

方法二:计数器

一般字符串都以’\0‘结尾,依靠这个特性来计算字符串长度。(字符数组除外因为可能不是 \0结尾)
如图:在这里插入图片描述

方法三:递归

递归是个很好的方法,没有创建变量就能计算出字符串长度
如图:
在这里插入图片描述

2.strcpy使用和模拟实现

strcpy的解析

在这里插入图片描述
源字符串必须以 ‘\0’ 结束。
• 会将源字符串中的 ‘\0’ 拷贝到目标空间。!!!
• 目标空间必须足够大,以确保能存放源字符串。
• 目标空间必须可修改。

strcpy的返回值是char*
strcpy的作用:是把source中的内容复制到destination中,如图:
在这里插入图片描述

strcpy的模拟实现

在这里插入图片描述

3.strcat使用和模拟实现

strcat的解析

strcat的作用:是把source中的内容拼接到destination后!
在这里插入图片描述

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

如图:
在这里插入图片描述

strcat的模拟实现

在这里插入图片描述

4.strcmp使用和模拟实现

strcmp的解析

strcmp的作用是比较两个字符串的长度。但实际上比较的是ASCII的大小
• 标准规定:
◦ 第一个字符串大于第二个字符串,则返回大于0的数字​
◦ 第一个字符串等于第二个字符串,则返回0​
◦ 第一个字符串小于第二个字符串,则返回小于0的数字

如图:
在这里插入图片描述

strcat的模拟实现

在这里插入图片描述

  • 32
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值