C ++ programa, norint pakeisti sakinį naudojant rekursiją

Ši programa paima vartotojo sakinį ir pakeičia tą sakinį naudodama rekursiją. Ši programa nenaudoja eilutės sakiniui pakeisti ar sakiniui išsaugoti.

Norėdami suprasti šį pavyzdį, turėtumėte žinoti šias C ++ programavimo temas:

  • C ++ funkcijos
  • Vartotojo nustatytų funkcijų tipai C ++
  • C ++ rekursija
  • C ++, jei, jei… dar kitaip, ir įdėta, jei … kita

Pavyzdys: pakeiskite sakinį naudodami rekursiją.

 #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)); ) ) 

Rezultatas

 Įveskite sakinį: nuostabi „margorp emosewa“ programa 

Šioje programoje vartotojo prašoma įvesti eilutę, kuri saugoma eilutės objekte str.

Tada reverse()vadinama funkcija, kuri yra rekursinė funkcija.

Šios funkcijos viduje įvesties eilutės dydį saugome kintamajame numOfChars.

Pirmojo funkcijos iškvietimo metu reverse()išspausdinamas paskutinis eilutės simbolis su kodu:

 cout << str(numOfChars - 1);

Atminkite, kad eilutės iš tikrųjų yra simbolių masyvai , todėl kiekvieną atskirą eilutės simbolį galima pavaizduoti kaip eilutės masyvo str () indeksą.

Kitoje eilutėje rekursinė funkcija vadinama:

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

Čia substr()eilutė pateikiama iki 2 paskutinio simbolio, kuris vėl perduodamas reverse()funkcijai.

Kitame reverse()skambutyje spausdinamas antrasis paskutinis simbolis, nes eilutėje yra vienas mažiau simbolių nei paskutinis. Po to vienas simbolis iš paskutinių vėl nukerpamas nuo eilutės ir perduodamas reverse()funkcijai.

Tai eina tol, kol eilutės ilgis bus lygus 1, kai bus atspausdintas galutinis simbolis (arba pirmasis simbolis) ir pabaiga.

Įdomios straipsniai...