Einen Satz umkehren

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernst du Schritt für Schritt, wie du ein C++-Programm schreibst, das jede eingegebene Satzzeichenfolge mithilfe von Rekursion umkehren kann. Das Programm wird einen Satzzeichenfolge von der Benutzerschaft entgegennehmen und die umgekehrte Satzzeichenfolge ausgeben.


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{{"Einen Satz umkehren"}} cpp/function_parameters -.-> lab-96210{{"Einen Satz umkehren"}} cpp/recursion -.-> lab-96210{{"Einen Satz umkehren"}} cpp/output -.-> lab-96210{{"Einen Satz umkehren"}} cpp/user_input -.-> lab-96210{{"Einen Satz umkehren"}} end

Include notwendige Bibliotheken

In C++ müssen wir die Bibliothek iostream einbinden, um die Standard-Eingabe-/Ausgabestromobjekte wie cin und cout zu verwenden. Fügen Sie daher den folgenden Codeblock am Anfang der main.cpp-Datei hinzu:

#include <iostream>
using namespace std

Deklariere eine Reverse-Funktion

In diesem Programm benötigen wir eine Funktion, um die Zeichenfolge rekursiv umzukehren. Fügen Sie den folgenden Codeblock nach der using namespace std;-Anweisung hinzu:

void reverse(const string& a);

Definiere die main-Funktion

Wir wissen, dass die main-Funktion der Einstiegspunkt unseres Programms ist. In der main-Funktion werden wir die Benutzerschaft bitten, einen Satz einzugeben und diesen Satz unserer reverse-Funktion zu übergeben.

int main() {
  string str;

  cout << "Bitte geben Sie einen Satz ein: ";
  getline(cin, str);

  reverse(str);

  return 0;
}

Hier bitten wir die Benutzerschaft, einen Satz einzugeben, und rufen dann unsere reverse-Funktion auf und übergeben den eingegebenen Satz als Argument.

Definiere die reverse-Funktion

Jetzt müssen wir die reverse-Funktion definieren, die wir zuvor deklariert haben. Wir werden Rekursion verwenden, um den eingegebenen Satz umzukehren. Hier ist die Implementierung der Funktion:

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

In dieser Funktion berechnen wir zunächst die Größe der Eingabezeichenfolge mit str.size(). Wenn die Größe der Zeichenfolge 1 ist, handelt es sich um den Basisfall, und wir geben einfach das letzte Zeichen des eingegebenen Satzes aus. Andernfalls geben wir das letzte Zeichen aus und rufen dann die reverse-Funktion rekursiv mit der Zeichenfolge auf, die das letzte Zeichen ausschließt.

Kompilieren und Ausführen

Wir haben unser Programm fertig geschrieben. Jetzt müssen wir es kompilieren und ausführen. Öffnen Sie ein Terminal im Verzeichnis ~/project und verwenden Sie den folgenden Befehl, um den Code zu kompilieren:

g++ main.cpp -o main

Dieser Befehl wird eine ausführbare Datei namens main generieren. Verwenden Sie jetzt den folgenden Befehl, um das Programm auszuführen:

./main

Nach erfolgreichem Ausführen des Programms können Sie die Ausgabe wie folgt sehen:

Bitte geben Sie einen Satz ein: Study tonight
thgnot ydutS

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie ein C++-Programm schreiben, das einen Satz mithilfe von Rekursion umkehren kann. Sie haben eine reverse-Funktion implementiert, die Rekursion verwendet, um den eingegebenen Satz umzukehren, und haben dann diese Funktion in der main-Funktion mit dem Eingabensatz als Argument aufgerufen. Schließlich haben Sie das Programm im Terminal kompiliert und ausgeführt, um die Ausgabe zu sehen.