strlen函数的头文件为#include<string.h>
返回值为size_t(无符号)类型
计数器
int my_strlen(const char* str)
{
//计数器
int count = 0;
while (*str++ != '\0')
{
count++;
}
return count;
}
递归
int my_strlen(const char* str)
{
//递归
if (*str != '\0')
{
return(1 + my_strlen(str + 1));
}
else
{
return 0;
}
}
如果不是'\0'就+1,再将地址+1作为参数传给my_strlen函数,如果是'\0'就返回0
指针减指针
int my_strlen(char* str)
{
//指针减指针
char* star = str;
while (*str)
{
str++;
}
return(str - star);
}
star记录字符串首地址,str最终指向'\0',高地址减低地址得到两地址之间的元素个数,即字符个数。
(低地址减高地址结果为负数)