1.计数器方式
#include<stdio.h>
int my_strlen(char* str1)
{
int count = 0;
while (*str1 != '\0')
{
count++;
str1++;
}
return count;
}
int main()
{
char str[1000] = { 0 };
gets(str);
int len = my_strlen(str);
printf("%d", len);
return 0;
}
2.不能创建临时变量计数器
#include<stdio.h>
#include<assert.h>
int my_strlen(const char* str)
{
assert(str);
if (*str == '\0')
return 0;
else
return 1 + my_strlen(str + 1);
}
int main()
{
char str[] = { "abcdef" };
int ret=my_strlen(str);
printf("%d", ret);
return 0;
return 0;
}
不能创建临时变量计数器也就是用函数递归的方法。
3.指针模拟实现strlen函数
#include<stdio.h>
#include<assert.h>
int my_strlen( const char* str)
{
assert(str);
char* p = str;
while (*p!='\0')
{
p++;
}
return p - str;
}
int main()
{
char str[] = { "abcdef" };
int ret=my_strlen(str);
printf("%d", ret);
return 0;
}
这里主要是用了指针 - 指针得到的是两个指针的元素个数,注意:两个指针要指向同一空间。
如果对你有帮助的话就请点个赞吧