需要帮助我的递归程序来反转输入
Need help with my recursive program that reverses the input
可能重复:
编写一个递归函数,反转输入
最近,我一直在读《C++For Everyone》一书,我一直难以组合递归函数(想想都很困惑…(
问题是:编写一个递归函数string reverse(string str)
,它返回str
的反向
这就是我目前所拥有的:
string reverse(string str)
{
string word = "";
if (str.length() <= 1)
{
return str;
}
else
{
string str_copy = str;
int n = str_copy.length() - 1;
string last_letter = str_copy.substr(n, 1);
str_copy = str_copy.substr(0, n);
word += reverse(str_copy);
return last_letter;
}
return word;
}
我现在的问题是:
如果我输入wolf
,它将返回f
如果我将return last_letter
更改为return word
,我将获得w
如果我更改为return str_copy
,我会得到wol
您需要返回最后一个字符(last_letter
(的组合和字符串其余部分的反转,但在任何尝试中都不会这样做。你只会返回一部分或另一部分。
string reverse(string str)
{
int len = str.length();
if (len <= 1)
{
return str;
}
else
{
return str.substr(len-1, 1) + reverse( str.substr(0, len-1) );
}
}
这将完成以下工作:
删除return last_letter;
更改`
word += reverse(str_copy);
至
word = last_letter+reverse(str_copy);
我把这个想法留给你!
最好。
相关文章:
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 无法在windows控制台中为C++程序提供必要的输入
- 更改.cpp程序的输入文件中数据的位置会意外更改输出
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 我的程序没有从文件中读取并输入数据
- 3-3. 编写一个程序来计算每个不同单词在其输入中出现的次数
- 为什么有时我输入一个整数,程序将第一个输入的数字打印成十进制数?
- LLVM | codegen 用于带有命令行选项的程序输入功能
- 为什么当我输入较大的数字时,我的程序会到达文件末尾?
- 编写一个不断要求用户输入的程序
- 程序中的布尔函数返回输入的范围无论如何都是无效的
- 为什么我的程序在输入某个形状的面积的测量值后没有结束?
- 在这个无限循环中,当输入 0 时终止,当输入 int 范围之外的任何内容时,程序行为不正常
- 一个C++程序,用于在输入位数时输出具有特定位数的 .txt 文件中的所有数字
- 如何将输入C 程序的平均值输入
- Sudoku输入程序跳过提示
- 无法将文件输入 C++ 程序
- 简单的c++输入程序
- 简单输入程序崩溃
- 用户用于输入程序设置的文件约定