C语言字符串函数strlen的详解使用和三种模拟实现方法

目录

1. strlen函数的用法

 2.strlen函数使用过程中的易错点

 2.1 strlen的返回类型为size_t类型

 2.2 strlen函数遇到\0就会停止,不会计算遇到第一个\0之后的长度

3 strlen函数的模拟实现(三种方式)

3.1循环+计数器法

3.2 利用指针减去指针的方法

3.3 利用递归思想

四.总结


1. strlen函数的用法

简要说明: 

使用strlen函数需要包含头文件<string.h>

strlen函数计算所求字符串的长度,并且返回所求长度

注意strlen函数返回值的类型是无符号长整形类型

用法举例:

 

 输出结果如下图所示

 

 2.strlen函数使用过程中的易错点

 2.1 strlen的返回类型为size_t类型

由于strlen函数的返回值为无符号型,所以不可将两个返回值相减进行大小的比较

有点难以理解可以看下面的代码

 输出结果如下图

 求出的结果与认知相符,将strlen(arr1) - strlen(arr2)相互替换位置后再进行测试

代码与结果如下图

 结果仍是arr1大于arr2  为什么会出现这种结果呢?

这是由于strlen函数返回类型是无符号整形,所以两个无符号整形相减所得的结果仍未无符号整形所以返回值一定>=0

 2.2 strlen函数遇到\0就会停止,不会计算遇到第一个\0之后的长度

对上述测试代码进行简要修改如下

 结果如下

 只计算量Hello的长度

3 strlen函数的模拟实现(三种方式)

strlen函数是由库函数提供的,那么我们能不能自己模拟出这个函数呢?

本文提供三种可供参考的方法

3.1循环+计数器法

此方法较为简单容易想到,代码如下

 运行结果如下

3.2 利用指针减去指针的方法

代码如下

运行结果如下

3.3 利用递归思想

代码如下

 运行结果如下

 以上三种方法都使用到了指针,并且由结果来看递归方法的效率较高

四.总结

strlen函数遇到\0就会停止,不会计算遇到第一个\0之后的长度

注意strlen函数返回值的类型是无符号长整形类型

如果对你有用的话点赞+收藏一下吧

谢谢大家~

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

橘子真甜~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值