使用遞迴反轉句子的 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+ 次瀏覽

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告