一:使用计数器
#include<stdio.h>
#include<assert.h>
int my_strlen (const char * str)
{
int count = 0;
assert(str != NULL);
while(* str != '\0')
{
count ++;
str ++;
}
return count;
}
int main()
{
char arr[] = "abcdef";
int ret = 0;
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}
二:用指针减指针的方法
#include<stdio.h>
#include<assert.h>
int my_strlen (char * str)
{
char *p = str;
assert(str != NULL);
while(*p != '\0')
{
p++; //p会移动到\0的位置上
}
return (p - str); // \0 减去字符首元素的地址就是字符串的长度
}
int main()
{
char arr[] = "abcdef";
int ret = 0;
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}
递归
#include<stdio.h>
#include<assert.h>
int my_strlen (char * str)
{
assert(str != NULL);
if(*str == '\0')
return 0;
else
return 1+my_strlen(str +1);
}
int main()
{
char arr[] = "abcdef";
int ret = 0;
ret = my_strlen(arr);
printf("%d\n",ret);
return 0;
}