//三种方法模拟实现C语言库函数strlen
//1,计数器法
#include<stdio.h>
#include<assert.h>
#include<windows.h>
int my_strlen(const char* str)
{
assert(str != NULL);
int count = 0;
while (*str != '\0')
{
str++;
count++;
}
return count;
}
int main()
{
char* arr = "abcdef";
int ret = my_strlen(arr);
printf("%d\n",ret);
system("pause");
return 0;
}
//指针—指针法
int my_strlen(const char* str)
{
const char* start = str;
assert(str != NULL);
while (*str != '\0')
{
str++;
}
return str - start;//第一个字符的地址减去起始字符的地址就时数组元素的个数
}
int main()
{
char* arr = "abcde";
int ret = my_strlen(arr);
printf("%d",ret);
system("pause");
return 0;
}
//递归法
int my_strlen(const char* str)
{
const char* start = str;
assert(str != NULL);
if (*str == '\0')
return 0;
else return 1 + my_strlen(str++);
}
int main()
{
char* arr = "abcde";
int ret = my_strlen(arr);
printf("%d", ret);
system("pause");
return 0;
}
三种方法模拟实现C语言库函数strlen
猜你喜欢
转载自blog.csdn.net/aixintianshideshouhu/article/details/81191020
今日推荐
周排行