1.计数
#include <stdio.h>
#include <assert.h>
size_t my_strlen(const char* str)
{
assert(str);
size_t count = 0;
while (*str++)
{
count++;
}
return count;
}
int main()
{
char arr1[] = "abc";
size_t len = my_strlen(arr1);
printf("%u\n", len);
return 0;
}
2.递归
#include <stdio.h>
#include <assert.h>
size_t my_strlen(const char* str)
{
assert(str);
if (*str == '\0')
{
return 0;
}
else
{
return my_strlen(str+1) + 1;
}
}
int main()
{
char arr1[] = "abc";
size_t len = my_strlen(arr1);
printf("%u\n", len);
return 0;
}
3.指针-指针
#include <stdio.h>
#include <assert.h>
size_t my_strlen(const char* str)
{
assert(str);
char* tmp = str;
while (*tmp)
{
tmp++;
}
return tmp - str;
}