介绍
在本实验中,你将逐步学习如何使用递归编写一个能够反转任意输入句子的 C++ 程序。该程序将从用户那里获取一个输入句子,并输出反转后的句子。
在本实验中,你将逐步学习如何使用递归编写一个能够反转任意输入句子的 C++ 程序。该程序将从用户那里获取一个输入句子,并输出反转后的句子。
在 C++ 中,为了使用像 cin 和 cout 这样的标准输入/输出流对象,我们需要包含 iostream 库。因此,请在 main.cpp 文件的开头添加以下代码块:
#include <iostream>
using namespace std
在本程序中,我们需要一个函数来递归地反转字符串。请在 using namespace std; 语句后添加以下代码块:
void reverse(const string& a);
众所周知,main 函数是我们程序的入口。在 main 函数中,我们将要求用户输入一个句子,并将该句子传递给我们的 reverse 函数。
int main() {
string str;
cout << "Please enter a sentence: ";
getline(cin, str);
reverse(str);
return 0;
}
在这里,我们要求用户输入一个句子,然后调用 reverse 函数并将输入的句子作为参数传递给它。
现在,我们需要定义之前声明的 reverse 函数。我们将使用递归来反转输入的句子。以下是该函数的实现:
void reverse(const string& str) {
size_t numOfChars = str.size();
if(numOfChars == 1) {
cout << str << endl;
}
else {
cout << str[numOfChars - 1];
reverse(str.substr(0, numOfChars - 1));
}
}
在这个函数中,我们首先使用 str.size() 计算输入字符串的长度。如果字符串的长度为 1,那么这是递归的基准情况,我们只需打印输入句子的最后一个字母。否则,我们打印最后一个字符,然后递归调用 reverse 函数,传入的字符串不包含最后一个字母。
我们已经完成了程序的编写。现在,我们需要编译并运行它。在 ~/project 目录下打开终端,并使用以下命令编译代码:
g++ main.cpp -o main
该命令将生成一个名为 main 的可执行文件。现在,使用以下命令运行程序:
./main
成功运行程序后,你可以看到如下输出:
Please enter a sentence: Study tonight
thgnot ydutS
在本实验中,你学习了如何编写一个使用递归反转句子的 C++ 程序。你实现了一个 reverse 函数,该函数利用递归反转输入的句子,并在 main 函数中调用该函数,将输入的句子作为参数传递。最后,你在终端中编译并运行了程序,查看了输出结果。