目录
使用计数方法实现strlen函数的模拟实现
在这里有一个assert函数这是断言,防止空指针,
在指针前面加上const 为了指针不被修改
#include<assert.h>
#include<stdio.h>
//模拟实现 strlen
int my_strlen(const char* str)
{
assert(str != NULL);
int count = 0;//计数器
while (*str)//如果*str不是'\0',那么就继续循环
{
str++;
count++;
}
return count;
}
使用递归的方式去实现
找如果*str不是'\0',那么就str+1,跳过,如果最后就是'\0',那么就返回0,
因为返回类型int,就一个返回一个,加,就模拟实现了strlen
int my_strlen(const char* str)
{
assert(str != NULL);
if (*str)
return 1 + my_strlen(str + 1);
else
return 0;
}//递归实现
使用指针的方式去模拟实现strlen
在这里思路:使用指针减去指针的方式,指针减去指针返回的值就是俩指针之间的元素个数
int my_strlen(const char* str)
{
assert(str != NULL);
char* begin = str;
char* end = str;
while (*end)
{
end++;
}//寻找'\0'的位置
return end - begin;
}//原理是指针减去指针返回中间元素的个数
看使用效果