Inverser une phrase

C++C++Beginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre étape par étape à écrire un programme C++ qui peut inverser toute phrase d'entrée en utilisant la récursivité. Le programme prendra une phrase d'entrée de l'utilisateur et affichera la phrase inversée.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/BasicsGroup(["Basics"]) cpp(("C++")) -.-> cpp/FunctionsGroup(["Functions"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp/BasicsGroup -.-> cpp/strings("Strings") cpp/FunctionsGroup -.-> cpp/function_parameters("Function Parameters") cpp/FunctionsGroup -.-> cpp/recursion("Recursion") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") subgraph Lab Skills cpp/strings -.-> lab-96210{{"Inverser une phrase"}} cpp/function_parameters -.-> lab-96210{{"Inverser une phrase"}} cpp/recursion -.-> lab-96210{{"Inverser une phrase"}} cpp/output -.-> lab-96210{{"Inverser une phrase"}} cpp/user_input -.-> lab-96210{{"Inverser une phrase"}} end

Inclure les bibliothèques nécessaires

En C++, pour utiliser les objets de flux d'entrée/sortie standard tels que cin, cout, nous devons inclure la bibliothèque iostream. Ajoutez donc le bloc de code suivant au début du fichier main.cpp :

#include <iostream>
using namespace std

Déclarer une fonction de renversement

Dans ce programme, nous avons besoin d'une fonction pour inverser la chaîne de caractères de manière récursive. Ajoutez le bloc de code suivant après l'instruction using namespace std; :

void reverse(const string& a);

Définir la fonction main

Comme nous le savons, la fonction main est le point d'entrée de notre programme. Dans la fonction main, nous demanderons à l'utilisateur d'entrer une phrase et nous passerons cette phrase à notre fonction reverse.

int main() {
  string str;

  cout << "Veuillez entrer une phrase : ";
  getline(cin, str);

  reverse(str);

  return 0;
}

Ici, nous demandons à l'utilisateur d'entrer une phrase, puis nous appelons notre fonction reverse et passons la phrase entrée en tant qu'argument.

Définir la fonction reverse

Maintenant, nous devons définir la fonction reverse que nous avons déclarée précédemment. Nous allons utiliser la récursivité pour inverser la phrase entrée. Voici l'implémentation de la fonction :

void reverse(const string& str) {
  size_t numOfChars = str.size();

  if(numOfChars == 1) {
    cout << str << endl;
  }
  else {
    cout << str[numOfChars - 1];
    reverse(str.substr(0, numOfChars - 1));
  }
}

Dans cette fonction, nous calculons d'abord la taille de la chaîne d'entrée en utilisant str.size(). Si la taille de la chaîne est 1, alors c'est le cas de base, et nous imprimons simplement la dernière lettre de la phrase d'entrée. Sinon, nous imprimons le dernier caractère, puis nous appelons récursivement la fonction reverse avec la chaîne excluant la dernière lettre.

Compiler et exécuter

Nous avons fini d'écrire notre programme. Maintenant, nous devons le compiler et l'exécuter. Ouvrez un terminal dans le répertoire ~/projet et utilisez la commande suivante pour compiler le code :

g++ main.cpp -o main

Cette commande générera un exécutable nommé main. Maintenant, utilisez la commande suivante pour exécuter le programme :

./main

Après avoir exécuté le programme avec succès, vous pouvez voir la sortie comme suit :

Please enter a sentence: Study tonight
thgnot ydutS

Résumé

Dans ce laboratoire, vous avez appris à écrire un programme C++ capable d'inverser une phrase à l'aide de la récursivité. Vous avez implémenté une fonction reverse qui utilise la récursivité pour inverser la phrase entrée puis appelé cette fonction dans la fonction main avec la phrase d'entrée en tant qu'argument. Enfin, vous avez compilé et exécuté le programme dans le terminal pour voir la sortie.