使用递归反转句子的 C++ 程序


字符串是一维字符数组,以空字符结尾。字符串的反转是指将同一个字符串以相反的顺序排列。例如:

Original String: Apple is red
Reversed String: der si elppA

下面是一个使用递归反转字符串形式的句子的程序。

示例

 在线演示

#include <iostream>
using namespace std;
void reverse(char *str) {
   if(*str == '\0')
   return;
   else {
      reverse(str+1);
      cout<<*str;
   }
}
int main() {
   char str[] = "C++ is fun";
   cout<<"Original String: "<<str<<endl;
   cout<<"Reversed String: ";
   reverse(str);
   return 0;
}

输出

Original String: C++ is fun
Reversed String: nuf si ++C

在上面的程序中,函数 reverse() 是一个递归函数,用于反转字符串。

最初,reverse() 接受 *str,它是一个指向字符串开头的指针。如果值为 null,则函数返回。如果不是,则函数使用值 str+1(即字符串中的下一个元素)递归调用自身。最终,当 str 为 null 时,str 的值将从后往前打印。因此,打印出反转后的字符串。如下代码片段所示。

if(*str == '\0')
   return;
   else {
      reverse(str+1);
      cout<<*str;
   }

在 main() 函数中,初始化字符串。并且显示原始字符串和反转后的字符串。如下所示:

char str[] = "C++ is fun";
cout<<"Original String: "<<str<<endl;
cout<<"Reversed String: ";
reverse(str);

更新于: 2020年6月24日

1K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告