Program C ++ untuk Membalikkan Kalimat Menggunakan Rekursi

Contoh: Membalikkan kalimat menggunakan rekursi.

#include 
using namespace std;

void reverse(const string& a);

int main()
{
    string str;
    cout << " Please enter a string " << endl;
    getline(cin, str);
    reverse(str);
    return 0;    
}

void reverse(const string& str)
{
    size_t numOfChars = str.size();

    if(numOfChars == 1)
       cout << str << endl;
    else
    {
       cout << str[numOfChars - 1];
       reverse(str.substr(0, numOfChars - 1));
    }
}

Keluaran

Enter a sentence: margorp emosewa
awesome program

Dalam program ini, pengguna diminta untuk memasukkan string yang disimpan dalam objek string str.

Lalu, itu reverse() fungsi disebut yang merupakan fungsi rekursif. Dalam panggilan fungsi pertama, reverse() mencetak karakter terakhir dari string (numOfChars - 1), -1 karena array dimulai dengan 0.

Kemudian, substr() memberikan string hingga karakter terakhir ke - 2, yang diteruskan lagi ke reverse() fungsi.

Selanjutnya reverse() panggilan, karakter terakhir ke-2 dicetak karena string berisi satu karakter lebih sedikit dari yang terakhir. Setelah ini, satu karakter dari yang terakhir dipotong dari string lagi dan diteruskan ke reverse() fungsi.

Ini berlangsung hingga panjang string sama dengan 1, ketika karakter terakhir (atau karakter pertama) dicetak dan loop berakhir.