众所周知,strlen函数是用来计算字符串长度的,但这种计算字符串的函数我们也可以自己写出来,这里详细介绍3种方法
首先看一下strlen函数
size_t strlen( const char *string );
里面参数为字符串的起始地址,遇到'\0'结束
1.计数器写法
#include<assert.h>
int mystrlen(const char* p)
{
int count = 0;
assert(p != NULL); //assert进行断言
while (*p)
{
count++; //只要不是'\0'就计数
p++;
}
return count;
}
int main()
{
int len = mystrlen("abcdef");
printf("%d\n", len);
}
2.指针写法
将字符串的起始地址与末尾地址相减,就得到了字符串长度
int mystrlen(const char* p)
{
char* pa = p;
while (*pa)
{
pa++;
}
return pa - p;
}
int main()
{
int len = mystrlen("abcdef");
printf("%d\n", len);
}
3.递归写法
用递归的思想有效解决问题
int mystrlen(const char* p)
{
if (*p != '\0')
{
p++;
return 1 + mystrlen(p);
}
else
return 0;
}
int main()
{
int len = mystrlen("abcdef");
printf("%d\n", len);
}
运行结果
欢迎关注,学习编程请关注 Go-ly,让我们一起将编程进行到底!
更多干货等你哦!