strlen所作的仅仅是一个计数器的工作,它从内存的某个位置(可以是字符串开头,中间某个位置,甚至是某个不确定的内存区域)开始扫描,直到碰到第一个字符串结束符'\0'为止,然后返回计数器值(长度不包含“\0”)。
根据它的特性我们编写函数:
<span style="font-size:18px;">#include<stdio.h>
#include<assert.h>
int my_strlen(char const *str1)
{
int count=0;
assert(str1);
while(*str1++!='\0')
{
count++;
}
return count;
}
int main()
{
char*p = "bit-tech";
int ret= my_strlen(p);
printf("%d\n",ret);
return 0;
}</span>
运行结果如图所示: