设计一个递归算法计算字符串长度
时间: 2023-05-26 07:01:06 浏览: 88
A:
1. 定义一个递归函数,输入一个字符串参数。
2. 如果字符串为空,返回0。
3. 否则,将字符串除去第一个字符的部分作为参数调用递归函数,并将返回结果加1即为字符串长度。
4. 实现代码如下:
```python
def get_string_length(string):
if string == "":
return 0
else:
return 1 + get_string_length(string[1:])
```
注意在 Python 中,字符串是类似列表的可迭代对象,`string[1:]` 表示除去第一个字符的剩余部分。
相关问题
用c语言设计一个递归算法计算字符串长度
A:以下是用c语言设计一个递归算法计算字符串长度的代码:
```c
#include <stdio.h>
int string_length(char str[]);
int main() {
char str[100];
printf("Enter a string: ");
fgets(str, 100, stdin); // 从标准输入读取字符串
int len = string_length(str);
printf("The length of the string is %d\n", len);
return 0;
}
// 递归函数计算字符串长度
int string_length(char str[]) {
if (str[0] == '\0') { // 如果字符串为空,返回0
return 0;
} else {
return 1 + string_length(str + 1); // 递归调用计算剩余部分的长度
}
}
```
该代码通过递归函数 `string_length` 计算字符串的长度,如果字符串为空则返回0,否则先算出第一个字符的长度1,再递归调用计算剩余字符串的长度,最后返回这个长度的总和。
对于一个采用字符数组存放的字符串str,用c语言设计一个递归算法求其字符个数
递归算法求字符串的字符个数可以按照以下步骤实现:
1. 定义一个递归函数,接收一个字符数组作为参数。
2. 在函数中判断字符数组是否为空,如果为空,则返回0。
3. 如果字符数组不为空,则递归计算其子串的字符个数,即将数组长度减1。
4. 将当前字符数组的字符个数加1,并返回该值。
下面是具体代码实现:
```
#include <stdio.h>
int countChars(char *str)
{
if (*str == '\0') // 如果字符数组为空
return 0;
else
return 1 + countChars(str + 1); // 递归计算子串的字符个数,并加1
}
int main()
{
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
printf("字符个数为:%d\n", countChars(str));
return 0;
}
```
在主函数中,先输入一个字符串,然后调用countChars函数求字符串的字符个数,并将结果输出。运行程序,可以得到如下结果:
```
请输入一个字符串:hello world
字符个数为:11
```
可以看到,该算法能够正确地计算字符串的字符个数。