第一种方法是用计数器模拟实现strlen函数。
#include<stdio.h>
#include<assert.h>
int my_strlen(const char *str)
{
int count = 0;
assert(str!=NULL);
while(*str!='\0')
{
str++;
count++;
}
return count;
}
int main()
{
int ret = 0;
char arr[10]="abcdefgh";
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}
第二种方法是用指针减指针的方法模拟实现strlen函数。
#include<stdio.h>
int my_strlen(const char *str)
{
const char *p = str;
while(*p!='\0')
{
p++;
}
return p-str;
}
int main()
{
int ret = 0;
char arr[10]="abcdefgh";
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}
第三种是用函数递归的方法模拟实现strlen函数。
#include<stdio.h>
int my_strlen(const char *str)
{
if(*str=='\0')
return 0;
else
return 1+my_strlen(str+1);
}
int main()
{
int ret = 0;
char arr[10]="abcdefgh";
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}
三种方法的结果都是: