strlen函数的模拟实现

首先我们先新建项目,并新建源文件
然后先调用sring.h里的strlen函数看看该函数的效果
可以看到strlen的结果为字符串"abc"的长度

我们又知道对于字符串"abc"实际上在字符串尾部会存在\0,即字符串arr实际上是"abc\0"

那么先定义自定义函数my_strlen

使它的返回类型为int ,接受的数组为char 类型。
然后设立一个变量i,用来计算字符串长度
使
brr遇到\0就停下来,在此之前一直保持加一位
并且当*brr不为\0时,i++



可以看到现在的代码似乎已经很好的模仿了strlen的功能
但是我们还可以进行改进

改进部分:
由逻辑推理可知当brr=\0时,\0对于条件判断相当于为0,C语言中0为假,非0为真。当brr=\0时即等同于while(0),while语句不往下执行。
所以我们可以改为这样:

然后运行:

可以看到运行结果没有问题

为了更加贴切strlen函数,让我们打开MSDN,来查看strlen这个函数

可以看到strlen的返回类型为size_t,而且char之前有const修饰(size_t是无符号的整形,相当于为0或正数;const 为常变量修饰,防止char中的数据发生改变)
我们也加上
最后运行:
运行成功!

posted @   辰末之星  阅读(2)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程
点击右上角即可分享
微信分享提示