Wie man eine Zeichenkette in C++ umkehrt
- String-Konstruktor zum Umkehren einer Zeichenkette verwenden
-
Verwendung von den
std::reverse()
Algorithmus zur Umkehrung einer Zeichenkette -
Verwendung von den
std::copy()
Algorithmus zur Umkehrung der Zeichenkette
In diesem Artikel wird erklärt, wie eine Zeichenkette in C++ umgekehrt werden kann.
String-Konstruktor zum Umkehren einer Zeichenkette verwenden
std::basic_string
hat den Konstruktor, der eine Zeichenkette mit dem Inhalt des Bereichs bilden kann. Wir können dann eine neue String-Variable deklarieren und ihren Konstruktor mit den umgekehrten Iteratoren der ursprünglichen String-Variablen - tmp_s
- füttern. Das folgende Beispiel demonstriert diese Methode und gibt beide Zeichenketten zur Überprüfung aus.
#include <algorithm>
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::reverse;
using std::string;
int main() {
string tmp_s = "This string will be reversed";
cout << tmp_s << endl;
string tmp_s_reversed(tmp_s.rbegin(), tmp_s.rend());
cout << tmp_s_reversed << endl;
return EXIT_SUCCESS;
}
Ausgabe:
This string will be reversed
desrever eb lliw gnirts sihT
Verwendung von den std::reverse()
Algorithmus zur Umkehrung einer Zeichenkette
Die std::reverse
Methode stammt aus der <algorithm>
STL-Bibliothek und kehrt die Reihenfolge der Elemente im Bereich um. Die Methode arbeitet mit Objekten, die als Argumente übergeben wurden, und gibt keine neue Kopie der Daten zurück, so dass wir eine weitere Variable deklarieren müssen, um die ursprüngliche Zeichenkette zu erhalten.
Beachten Sie, dass die Funktion reverse
die Ausnahme std::bad_alloc
auslöst, wenn der Algorithmus keinen Speicher zuweisen kann.
#include <algorithm>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::reverse;
using std::string;
int main() {
string tmp_s = "This string will be reversed";
cout << tmp_s << endl;
string tmp_s_reversed(tmp_s);
reverse(tmp_s_reversed.begin(), tmp_s_reversed.end());
cout << tmp_s_reversed << endl;
return EXIT_SUCCESS;
}
Verwendung von den std::copy()
Algorithmus zur Umkehrung der Zeichenkette
std::copy
ist ein weiterer leistungsfähiger Algorithmus, der für mehrere Szenarien verwendet werden kann. Diese Lösung initialisiert eine neue String-Variable und modifiziert ihre Größe mit Hilfe der eingebauten resize
-Methode. Als nächstes rufen wir die copy
-Methode auf, um die deklarierte Zeichenkette mit den Daten der ursprünglichen Zeichenkette zu füllen. Beachten Sie jedoch, dass die ersten beiden Parameter umgekehrte Iteratoren des Quellbereichs sein sollten.
#include <algorithm>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::reverse;
using std::string;
int main() {
string tmp_s = "This string will be reversed";
cout << tmp_s << endl;
string tmp_s_reversed;
tmp_s_reversed.resize(tmp_s.size());
copy(tmp_s.rbegin(), tmp_s.rend(), tmp_s_reversed.begin());
cout << tmp_s_reversed << endl;
return EXIT_SUCCESS;
}
Falls die umgekehrten Zeichenkettendaten nicht gespeichert werden müssen, können wir den copy()
-Algorithmus verwenden, um die Zeichenkettendaten direkt in umgekehrter Reihenfolge auf die Konsole auszugeben, wie im folgenden Code-Beispiel gezeigt wird:
#include <algorithm>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::reverse;
using std::string;
int main() {
string tmp_s = "This string will be reversed";
cout << tmp_s << endl;
copy(tmp_s.rbegin(), tmp_s.rend(), std::ostream_iterator<char>(cout, ""));
return EXIT_SUCCESS;
}
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookVerwandter Artikel - C++ String
- Finden Sie das erste sich wiederholende Zeichen in einer Zeichenfolge in C++
- Finden Sie die längste gemeinsame Teilzeichenfolge in C++
- Großschreiben des ersten Buchstabens einer Zeichenfolge in C++
- Vergleich von String und Character in C++
- Entfernen Sie das letzte Zeichen aus einer Zeichenkette in C++
- Abrufen des letzten Zeichens einer Zeichenkette in C++