用递归实现strlen函数
时间: 2023-06-14 09:05:27 浏览: 90
strlen函数是用来计算一个字符串的长度的,可以通过递归实现。下面是一个用递归实现strlen函数的示例代码:
```c
int strlen(char *str) {
if (*str == '\0') {
return 0;
} else {
return 1 + strlen(str + 1);
}
}
```
这个函数首先检查传入的指针所指向的字符是否是结束符'\0',如果是,说明字符串已经结束,返回0。否则,将指针向后移动一位,递归调用strlen函数,并将返回的结果加1,最终返回字符串的长度。
相关问题
递归实现strlen
递归实现strlen的方法是通过不断地调用函数本身来实现字符串长度的计算。具体实现方法如下:
```
int stringlenth(char* string) {
if ((*string) != '\0') {
return 1 + stringlenth(string + 1);
} else {
return 0;
}
}
```
这个函数首先判断当前字符是否为'\0',如果不是,则返回1加上调用函数本身并传入下一个字符的地址;如果是,则返回0。这样,每次调用函数本身时,都会将字符串的指针向后移动一位,直到遇到'\0'为止。最终返回的值就是字符串的长度。
另外,引用和引用也提供了递归实现strlen的方法,它们的实现方式与上述方法类似,只是细节上有所不同。
c语言递归实现函数strlen功能
可以使用递归实现strlen函数,代码如下:
```c
#include <stdio.h>
int strlen_recursion(char* str) {
if (*str == '\0') {
return 0;
} else {
return 1 + strlen_recursion(str + 1);
}
}
int main() {
char str[] = "Hello World!";
int len = strlen_recursion(str);
printf("The length of string is %d\n", len);
return 0;
}
```
在递归函数中,判断当前字符是否为字符串结束符'\0',如果是,则返回0,表示字符串长度为0;否则,字符串长度为1 + 去除当前字符后的子字符串的长度(使用指针+1来指向下一个字符)。
阅读全文