C ++ - program för att vända en mening med rekursion

Detta program tar en mening från användaren och vänder den meningen med rekursion. Detta program använder inte sträng för att vända meningen eller lagra meningen.

För att förstå detta exempel bör du ha kunskap om följande C ++ programmeringsämnen:

  • C ++ - funktioner
  • Typer av användardefinierade funktioner i C ++
  • C ++ rekursion
  • C ++ if, if… else och Nested if … else

Exempel: Vänd en mening med recursion.

 #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

 Ange en mening: margorp emosewa fantastiskt program 

I detta program uppmanas användaren att ange en sträng som lagras i strängobjektet str.

Sedan reverse()kallas funktionen som är en rekursiv funktion.

Inuti denna funktion lagrar vi storleken på inmatningssträngen i variabeln numOfChars.

I det första funktionsanropet reverse()skriver du ut det sista tecknet i strängen med koden:

 cout << str(numOfChars - 1);

Kom ihåg att strängar faktiskt är teckenmatriser , så varje enskild karaktär i en sträng kan representeras som ett index för strängmatrisstr ().

I nästa rad kallas den rekursiva funktionen:

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

Här substr()ger strängen upp till det 2: a sista tecknet, som skickas igen till reverse()funktionen.

I nästa reverse()samtal skrivs det 2: a sista tecknet ut eftersom strängen innehåller ett tecken mindre än det sista. Efter detta avskärs en karaktär från den sista från strängen igen och skickas till reverse()funktionen.

Detta fortsätter tills strängens längd är lika med 1, när det sista tecknet (eller det första tecknet) skrivs ut och slingan slutar.

Intressanta artiklar...