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);