一、strlen函数本身是计算字符串长度的大小,返回值是无符号的整型,而结束的标志是'\0',测量的是'\0'之前字符的个数,清楚strlen的主要特征,接下来开始模拟实现
0、主函数的代码
二、计数模拟实现:
ch++,移动的是其指向类型的的大小,也就是char类型。又知道数组在内存中存储的地址是连续的,所以每次++,指针代表下一个字符的地址,当指针指向'\0'时,结束循环。此时count的值即为字符个数。
三、函数递归实现:
用递归计算字符个数是,递归几次则代表有几个字符。递归的终止条件也是‘/0’,递归过程如下,是不是有点大事化小的感觉?,这里递归了8次,去掉\0,结果是7
五、指针向减实现
s指针,指向字符串第一个字符,p指针指向字符串最后一个字符,则指针相减,得到的就是,这俩指针之间的字符个数。
五、最后我们来看下结果:
这三种方法,模拟实现的函数strlen,结果相同