使用递归反转句子的 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);
广告