Programme C ++ pour inverser une phrase à l'aide de la récursivité

Ce programme prend une phrase de l'utilisateur et inverse cette phrase en utilisant la récursivité. Ce programme n'utilise pas de chaîne pour inverser la phrase ou stocker la phrase.

Pour comprendre cet exemple, vous devez avoir la connaissance des rubriques de programmation C ++ suivantes:

  • Fonctions C ++
  • Types de fonctions définies par l'utilisateur en C ++
  • Récursivité C ++
  • C ++ if, if… else et Nested if… else

Exemple: inverser une phrase en utilisant la récursivité.

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

Production

 Entrez une phrase: margorp emosewa awesome program 

Dans ce programme, l'utilisateur est invité à entrer une chaîne qui est stockée dans l'objet chaîne str.

Ensuite, la reverse()fonction est appelée qui est une fonction récursive.

Dans cette fonction, nous stockons la taille de la chaîne d'entrée dans la variable numOfChars.

Dans le premier appel de fonction, reverse()imprime le dernier caractère de la chaîne avec le code:

 cout << str(numOfChars - 1);

N'oubliez pas que les chaînes sont en fait des tableaux de caractères , de sorte que chaque caractère individuel d'une chaîne peut être représenté comme un index du tableau de chaînes str ().

Dans la ligne suivante, la fonction récursive est appelée:

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

Ici, substr()donne la chaîne jusqu'au 2ème dernier caractère, qui est à nouveau passé à la reverse()fonction.

Lors de l' reverse()appel suivant , le 2ème dernier caractère est imprimé car la chaîne contient un caractère de moins à partir du dernier. Après cela, un caractère du dernier est à nouveau coupé de la chaîne et transmis à la reverse()fonction.

Cela va jusqu'à ce que la longueur de la chaîne soit égale à 1, lorsque le dernier caractère (ou le premier caractère) est imprimé et que la boucle se termine.

Articles intéressants...