首先我们先新建项目,并新建源文件
然后先调用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中的数据发生改变)
我们也加上
最后运行:
运行成功!