#include<stdio.h>
#include<assert.h>
size_t my_strlen1(const char* p)
{
assert(p);//用来检查p是否为空指针
size_t count = 0;
if (*p != '\0')
{
return 1+my_strlen1(p+1);
}
else
{
return 0;
}
}
size_t my_strlen2(const char* p)
{
assert(p);
size_t count = 0;
while (*p != '\0')
{
count++;
p++;
}
return count;
}
size_t my_strlen3(const char* p)
{
assert(p);
char* start = p;
while (*p != '\0')
{
p++;
}
return p - start;
}
int main()
{
char a[] = "abcdefg";
//char* p1 = NULL;
//用递归实现strlen
size_t n = my_strlen1(a);
printf("%u\n", n);
//用循环实现strlen
size_t q = my_strlen2(a);
printf("%u\n", q);
//用指针-指针来实现strlen
size_t w = my_strlen3(a);
printf("%u\n", w);
return 0;
}
模拟实现strlen函数的三种方法
最新推荐文章于 2024-09-11 00:16:09 发布