Program C ++ untuk Membalik Kalimat Menggunakan Rekursi

Program ini mengambil kalimat dari pengguna dan membalik kalimat tersebut menggunakan rekursi. Program ini tidak menggunakan string untuk membalikkan kalimat atau menyimpan kalimat.

Untuk memahami contoh ini, Anda harus memiliki pengetahuan tentang topik pemrograman C ++ berikut:

  • Fungsi C ++
  • Jenis Fungsi yang Ditentukan Pengguna di C ++
  • C ++ Rekursi
  • C ++ if, if… else dan Nested if… else

Contoh: Membalik kalimat menggunakan rekursi.

 #include using namespace std; // function prototype void reverse(const string& a); int main() ( string str; cout << " Please enter a string " << endl; getline(cin, str); // function call reverse(str); return 0; ) // function definition void reverse(const string& str) ( // store the size of the string size_t numOfChars = str.size(); if(numOfChars == 1) ( cout << str << endl; ) else ( cout << str(numOfChars - 1); // function recursion reverse(str.substr(0, numOfChars - 1)); ) ) 

Keluaran

 Masukkan kalimat: program mengagumkan margorp emosewa 

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

Kemudian, reverse()disebut fungsi yang merupakan fungsi rekursif.

Di dalam fungsi ini, kami menyimpan ukuran string input di variabel numOfChars.

Pada pemanggilan fungsi pertama, reverse()mencetak karakter terakhir dari string dengan kode:

 cout << str(numOfChars - 1);

Ingatlah bahwa string sebenarnya adalah array karakter , jadi setiap karakter individu dari sebuah string dapat direpresentasikan sebagai indeks dari string array str ().

Di baris berikutnya, fungsi rekursif disebut:

 reverse(str.substr(0, numOfChars - 1));

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

Dalam reverse()panggilan berikutnya , 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 sampai panjang string sama dengan 1, ketika karakter terakhir (atau karakter pertama) dicetak dan loop berakhir.

Artikel yang menarik...