使用遞迴反轉句子的 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);
廣告