Das Umkehren einer Zeichenfolge ist nichts anderes als das einfache Ersetzen des letzten Elements einer Zeichenfolge an der ersten Position der Zeichenfolge.

Verschiedene Methoden zum Umkehren eines Strings in C++ sind:
- Erstellen unserer eigenen Umkehrfunktion
- Verwendung der „eingebauten“ Umkehrfunktion
- Verwenden des Konstruktors
- Verwendung einer Temp Datei
1. Erstellen einer benutzerdefinierten Umkehrfunktion zum Austauschen von Zeichen
- Mit einem First-to-Last-Ansatz‘ für' Schleife
CPP
// C++ program to reverse a string> // using first to last approach> // 'for' loop> #include> using> namespace> std;> // Function to reverse a string> void> reverseStr(string& str)> {> >int> n = str.length();> >// Swap character starting from two> >// corners> >for> (>int> i = 0; i swap(str[i], str[n - i - 1]); } // Driver program int main() { string str = 'geeksforgeeks'; reverseStr(str); cout << str; return 0; }> |
>
>Ausgabe
skeegrofskeeg>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: O(1)
- Verwenden eines First-to-Last-Ansatzes mit While-Schleife
C++
// C++ program to reverse a string> // using while loop> #include> using> namespace> std;> // Function to reverse a string> void> reverseStr(string& str)> {> >int> len = str.length();> >int> n = len-1;> >int> i = 0;> >while>(i<=n){> >//Using the swap method to switch values at each index> >swap(str[i],str[n]);> >n = n-1;> >i = i+1;> >}> }> // Driver program> int> main()> {> >string str =>'geeksforgeeks'>;> >reverseStr(str);> >cout << str;> >return> 0;> }> |
>
>Ausgabe
skeegrofskeeg>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: O(1)
- Verwendung eines Last-to-First-Ansatzes für „Schleife
C++
strsep
// C++ program to demonstrate reverse> // of a string using Last to First> // Approach 'for' Loop> #include> using> namespace> std;> // Function to reverse a string> void> reverse(string str)> {> >for> (>int> i = str.length() - 1; i>= 0; i--)> >cout << str[i];> }> // Driver code> int> main(>void>)> {> >string s =>'techcodeview.com'>;> >reverse(s);> >return> (0);> }> |
>
>Ausgabe
skeeGrofskeeG>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: O(1)
- Verwendung einer Last-to-First-Ansatz-While-Schleife
C++
// C++ program to demonstrate reverse> // of a string using Last to First> // Approach 'while' Loop> #include> using> namespace> std;> // Function to reverse a string> void> reverse(string str)> {> >int> len = str.length();> >int> n = len;> >while>(n--)> >cout << str[n];> }> // Driver code> int> main(>void>)> {> >string s =>'techcodeview.com'>;> >reverse(s);> >return> (0);> }> |
>
>Ausgabe
skeeGrofskeeG>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: O(1)
1. Verwendung einer Rekursionsfunktion mit Zwei-Zeiger-Ansatz
Rekursionsfunktionen werden zum Durchlaufen verschiedener Indizes der Zeichenfolge verwendet.
C++
// C++ program to reverse a string> // using recursion> #include> using> namespace> std;> // Function to reverse a string> void> reverseStr(string& str,>int> n,>int> i)> {> > >if>(n<=i){>return>;}> // Swapping the character> >swap(str[i],str[n]);> >reverseStr(str,n-1,i+1);> }> // Driver program> int> main()> {> >string str =>'geeksforgeeks'>;> >reverseStr(str, str.length()-1, 0);> >cout << str;> >return> 0;> }> |
>
>Ausgabe
skeegrofskeeg>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum : AN)
2. Verwendung eines Ein-Zeiger-Ansatzes bei der Rekursion
Unten ist die Implementierung des Codes:
C++
Java-Vergleichszeichenfolge
//C++ program to reverse a string using recursion> #include> using> namespace> std;> void> getreverse(string &str,>int> i)> {> >if> (i>(str.length() - 1 - i))> >{> >return>;> >}> >swap(str[i], str[str.length() - i - 1]);> >i++;> >getreverse(str, i);> }> int> main()> {> >string name =>'geeksforgeeks'>;> >getreverse(name, 0);> >cout << name << endl;> >return> 0;> }> //code contributed by pragatikohli> |
>
>Ausgabe
skeegrofskeeg>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: AN)
3. Verwendung der integrierten Umkehrfunktion
In der Header-Datei des Algorithmus gibt es eine direkte Funktion für die Umkehrung, die uns beim Programmieren Zeit spart.
// Reverses elements in [begin, end] void reverse (BidirectionalIterator begin, BidirectionalIterator end);>
CPP
// C++ program to illustrate the> // reversing of a string using> // reverse() function> #include> using> namespace> std;> int> main()> {> >string str =>'geeksforgeeks'>;> >// Reverse str[begin..end]> >reverse(str.begin(), str.end());> >cout << str;> >return> 0;> }> |
Konvertieren Sie einen String in ein JSONObject-Java
>
>Ausgabe
skeegrofskeeg>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: O(1)
4. Kehren Sie einen String mit dem Konstruktor um
Die Übergabe umgekehrter Iteratoren an den Konstruktor gibt uns eine umgekehrte Zeichenfolge zurück.
CPP
// C++ program to reverse> // string using constructor> #include> using> namespace> std;> int> main()> {> >string str =>'techcodeview.com'>;> >// Use of reverse iterators> >string rev = string(str.rbegin(), str.rend());> >cout << rev << endl;> >return> 0;> }> |
>
>Ausgabe
skeeGrofskeeG>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: O(1)
5. Verwenden einer temporären Zeichenfolge
CPP
// C++ program to demonstrate> // reversing of string> // using temporary string> #include> using> namespace> std;> int> main()> {> >string str =>'techcodeview.com'>;> >int> n = str.length();> > >// Temporary string to store the reverse> >string rev;> > >for> (>int> i = n - 1; i>= 0; i--)> >rev.push_back(str[i]);> >cout << rev << endl;> >return> 0;> }> |
>
>Ausgabe
skeeGrofskeeG>
Komplexitätsanalyse:
Zeitkomplexität : AN)
Hilfsraum: O(1)
Wie könnten wir die Umkehrung einer Konstantenzeichenfolge erhalten?
Um die Umkehrung einer Konstantenzeichenfolge zu erhalten, müssen wir zunächst ein „“ deklarieren. const string’ in einer benutzerdefinierten Funktion, die wir anschließend deklariert haben, verwenden Sie dann den folgenden Algorithmus für den Aufruf der gewünschten Objekte.
const reverseConstString = function(string) { return string.split('').reverse().join('')> Beispiel:
C++
// C++ program to get reverse of a const string> #include> using> namespace> std;> // Function to reverse string and return> // reverse string pointer of that> char>* reverseConstString(>char> const>* str)> {> >// find length of string> >int> n =>strlen>(str);> >// create a dynamic pointer char array> >char>* rev =>new> char>[n + 1];> >// copy of string to ptr array> >strcpy>(rev, str);> >// Swap character starting from two> >// corners> >for> (>int> i = 0, j = n - 1; i swap(rev[i], rev[j]); // return pointer of the reversed string return rev; } // Driver code int main(void) { const char* s = 'techcodeview.com'; printf('%s', reverseConstString(s)); return (0); }> |
>
>Ausgabe
skeeGrofskeeG>
Zeitkomplexität: AN)
Hilfsraum: AN)
sie sind Sänger
Verwenden der Stack-Datenstruktur
C++
// C++ Program to reverse a string> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >stack<>char>>st;> >for> (>char> x : s)> >st.push(x);> >while> (!st.empty()) {> >cout << st.top();> >st.pop();> >}> >return> 0;> }> |
>
>Ausgabe
skeeGrofskeeG>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: AN)
Verwenden der Vektordatenstruktur
C++
// C++ Program to reverse a string> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >int> n=s.length();> >vector<>char>>Ding;> >for> (>int> i = n - 1; i>= 0; i--)> >vec.push_back(s[i]);> > >for>(>auto> i:vec){> >cout< } return 0; }> |
>
>Ausgabe
skeeGrofskeeG>
Komplexitätsanalyse:
Zeitkomplexität: AN)
Hilfsraum: AN)
Dieser Artikel wurde verfasst von Priyam Kakati, Ranju Kumari, Somesh Awasthi.