对于一个采用字符数组存放的字符串str,设计一个递归算法求其字符个数(长度)。要求先写出递归模型,再写出对应的递归程序。(注意一定要写完整,包括主函数),用c++编程实现
时间: 2024-10-29 17:23:43 浏览: 18
当使用字符数组来表示字符串时,你可以通过递归来计算字符串的长度。递归模型的基本思路是:如果字符串的第一个字符存在,则当前字符计数加一,并将剩余部分的字符个数作为子问题处理。当字符串为空时,返回0。
递归程序的伪代码如下:
```
递归函数 getLength(char[] str, int index):
// 基线条件:字符串结束,返回当前索引位置加1作为长度
if (index == strlen(str)) {
return 1;
}
// 递归条件:继续处理下一个字符
else {
return 1 + getLength(str, index + 1); // 长度等于当前字符加上剩余字符的长度
}
```
以下是完整的 C++ 实现,包括主函数:
```cpp
#include <iostream>
using namespace std;
int getLength(char str[], int index) {
// 如果到达了字符串结尾
if (index >= strlen(str)) {
return 0; // 返回字符串长度
} else {
return 1 + getLength(str, index + 1); // 递归调用,增加一位长度
}
}
int main() {
char str[] = "Hello, World!";
int length = getLength(str, 0);
cout << "字符串 '" << str << "' 的长度是: " << length << endl;
return 0;
}
```
在这个程序中,`getLength` 函数接收一个字符数组 `str` 和一个起始索引 `index`,并返回从该索引开始到结尾的所有字符的数量。在 `main` 函数中,我们创建了一个字符串并将其传递给 `getLength`,然后打印出字符串的长度。
阅读全文