Skip to content
Related Articles

Related Articles

Different methods to reverse a string in C/C++
  • Difficulty Level : Easy
  • Last Updated : 17 Feb, 2021

Given a string, write a C/C++ program to reverse it.

string-reverse

  1. Write own reverse function by swapping characters: One simple solution is to write our own reverse function to reverse a string in C++.




    // A Simple C++ program to reverse a string
    #include <bits/stdc++.h>
    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 < n / 2; i++)
            swap(str[i], str[n - i - 1]);
    }
      
    // Driver program
    int main()
    {
        string str = "geeksforgeeks";
        reverseStr(str);
        cout << str;
        return 0;
    }

    
    

    Output :

    skeegrofskeeg


  2. Using inbuilt “reverse” function: There is a direct function in “algorithm” header file for doing reverse that saves our time when programming.
    // Reverses elements in [begin, end]
    void reverse (BidirectionalIterator begin, 
    BidirectionalIterator end);
    




    // A quickly written program for reversing a string
    // using reverse()
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        string str = "geeksforgeeks";
      
        // Reverse str[begin..end]
        reverse(str.begin(), str.end());
      
        cout << str;
        return 0;
    }

    
    

    Output :

    skeegrofskeeg
  3. Only printing reverse:




    // C++ program to print reverse of a string
    #include <bits/stdc++.h>
    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 = "GeeksforGeeks";
        reverse(s);
        return (0);
    }

    
    

    Output:



    skeegrofskeeG
    
  4. Getting reverse of a const string:




    // C++ program to get reverse of a const string
    #include <bits/stdc++.h>
    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<j; i++,j--)
            swap(rev[i], rev[j]);       
          
        // return pointer of the reversed string
        return rev;
    }
      
    // Driver code
    int main(void)
    {
        const char *s = "GeeksforGeeks";
        printf("%s", reverseConstString(s));
        return (0);
    }

    
    

    Output:

    skeeGrofskeeG
    
  5. Reverse string using the constructor : Passing reverse iterators to the constructor returns us a reversed string.




    // A simple C++ program to reverse string using constructor 
    #include <bits/stdc++.h> 
    using namespace std; 
    int main(){
      
        string str = "GeeksforGeeks";
      
        //Use of reverse iterators
        string rev = string(str.rbegin(),str.rend());
      
        cout<<rev<<endl; 
        return 0;
    }

    
    

    Output:

    skeeGrofskeeG
    

This article is contributed by Priyam kakati, Ranju Kumari, Somesh Awasthi and improved by Supratik Mitra, Lakshay Bansal. If you like GeeksforGeeks and would like to contribute, you can also write an article and mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :