1.计算器方法
#include<stdio.h>
#include<assert.h>
size_t my_strlen(const char* str)//size_t表示返回值为无符号整数,
const的作用是保护指针指向的值不被改变
{
int count = 0;
assert(str);//assert断言,若str指针为NULL会报错
while (*str != '\0')
{
str++;
count++;
}
return count;
}
int main()
{
char str[] = "abcdef";
printf("%d\n", my_strlen(str));
return 0;
}
2.递归法
size_t my_strlen(const char* str)
{
assert(str);
if (*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
3.指针 - 指针的方法
size_t my_strlen(const char* str)
{
assert(str);
char* end = str;
while (*end != '\0')
{
end++;
}
return end - str;//末指针-初指针
}