字符串是一维字符数组,以空字符结尾。字符串的反序是相同字符串的相反顺序。例如。
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);