1 题目
写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。
2 分析
我们知道在string.h
中有库函数strlen
函数,他的使用方法如下:
char str[] = "hello";
printf("str字符串的长度为:%d", strlen(str));
现在要自己编写统计字符串长度的函数,就要知道字符串判断结束的原理是通过判断\0
字符串结束符来实现的
2.1 方法1-常规方法
设置计数器count
逐一判断字符是否等于\0
,若不等于则计数器+1
,当循环到\0
时,退出循环,并返回计数器count
即可,见实现1
。
2.2 方法2-递归方法
递归的目的是计算字符串长度,递归的退出条件是遇到\0
,递归的递推公式是1+myStrlen(str + 1)
,即遇到\0
就返回0
,若不是\0
则进行递归将字符串指针向前移动一个位置,见实现2
。
3 实现
3.1 实现1-常规方法
int StrLength(char *str)
{
int count = 0; // 字符串长度
while (str[count] != '\0') {
count++;
}
return count;
}
3.2 实现2-递归方法
int StrLength(char *str)
{
if (*str == '\0') {
return 0;
} else {
return 1 + Strlen(str+1);
}
}