C ++ - program til at vende en sætning ved hjælp af rekursion

Dette program tager en sætning fra brugeren og vender sætningen ved hjælp af rekursion. Dette program bruger ikke streng til at vende sætningen eller gemme sætningen.

For at forstå dette eksempel skal du have kendskab til følgende C ++ programmeringsemner:

  • C ++ funktioner
  • Typer af brugerdefinerede funktioner i C ++
  • C ++ rekursion
  • C ++ hvis, hvis … ellers og Nestet hvis … ellers

Eksempel: Vend en sætning ved hjælp af rekursion.

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

Produktion

 Indtast en sætning: margorp emosewa fantastisk program 

I dette program bliver brugeren bedt om at indtaste en streng, der er gemt i strengobjektet str.

Derefter reverse()kaldes funktionen, som er en rekursiv funktion.

Inde i denne funktion gemmer vi størrelsen på inputstrengen i variablen numOfChars.

I det første funktionsopkald reverse()udskrives strengens sidste tegn med koden:

 cout << str(numOfChars - 1);

Husk, at strenge faktisk er tegnrække , så hver enkelt karakter i en streng kan repræsenteres som et indeks for streng array str ().

I den næste linje kaldes den rekursive funktion:

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

Her substr()giver strengen op til det 2. sidste tegn, som sendes igen til reverse()funktionen.

I det næste reverse()opkald udskrives det 2. sidste tegn, fordi strengen indeholder et tegn mindre end det sidste. Herefter afskæres et tegn fra det sidste igen fra strengen og overføres til reverse()funktionen.

Dette fortsætter indtil længden af ​​strengen er lig med 1, når det sidste tegn (eller det første tegn) udskrives, og sløjfen slutter.

Interessante artikler...