C++ String Reverse

You can reverse a string in C++ either by using available builtin functions or you can write your own logic using looping techniques.

In this tutorial, we will go through some of the builtin functions and looping techniques to reverse a string.

C++ String Reverse using reverse()

reverse() is a function in algorithm header file used to reverse a sequence in the given range.

In the following example, we shall include algorithm header file and use reverse() function. Pass the beginning and ending of the string as arguments to reverse() function as shown in the program. This process reverses the string in-place.

C++ Program

#include <iostream> 
#include <algorithm>  
using namespace std;

int main() {
   string str = "And still, I rise.";
   reverse(str.begin(), str.end());
   cout << str << endl;
}

Output

.esir I ,llits dnA

C++ String Reverse by Swapping Characters

To reverse a string by swapping, you can follow the below steps.

  1. Start.
  2. Take string in variable str.
  3. Initialize variable index with 0.
  4. Check if index is less than half the length of str. If false, go to step 7.
  5. Swap str[index] with str[str length - 1 - index].
  6. Increment index, go to step 4.
  7. Stop.

In the following example, we shall implement the above steps and reverse the string.

C++ Program

#include <iostream> 
using namespace std;

int main() {
   string str = "And still, I rise.";

   char ch;
   for (int index = 0, len = str.length(); index < len/2; index++) {
      ch = str[index];
      str[index] = str[len-1-index];
      str[len-1-index] = ch;
   }

   cout << str << endl;
}

Output

.esir I ,llits dnA

C++ String Reverse by Copying string from Right to Left

To reverse a string by swapping, you can follow the below steps.

  1. Start.
  2. Take string in variable str.
  3. Take character array rev with size of str. This will hold the reversed string.
  4. Initialize variable index with 0.
  5. Check if index is less than the length of str. If false, go to step 8.
  6. Store str[str length - 1 - index] in rev[index].
  7. Increment index, go to step 4.
  8. Stop.

In the following example, we shall implement the above steps and reverse the string.

C++ Program

#include <iostream> 
using namespace std;

int main() {
   string str = "And still, I rise.";
   char rev[str.length()];

   for (int index = 0, len = str.length(); (index < len); index++) {
      rev[index] = str[len-1-index];
   }

   cout << rev << endl;
}

Output

.esir I ,llits dnA

C++ String Reverse using Recursion

In the following example, we shall write a recursion function that reveres a given string.

C++ Program

#include <iostream>
using namespace std;

void reverseString(string& str, int n, int i) {
   if (n <= i) {
      return;
   }
   swap(str[i], str[n]);
   reverseString(str, n - 1, i + 1);
}

int main() {
   string str = "And still, I rise.";
   reverseString(str, str.length() - 1, 0);
   cout << str << endl;
}

Output

.esir I ,llits dnA

Conclusion

In this C++ Tutorial, we learned how to reverse a string using inbuilt functions, and looping techniques.