Different methods to reverse a string in C/C++

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 two write our own reverse function to reverse a string in C++.
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

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

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

    Output :

    skeegrofskeeg
  3. Only printing reverse:
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

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

    chevron_right

    
    

    Output:

    skeeg rof skeeG
    
  4. Getting reverse of a const string:
    filter_none

    edit
    close

    play_arrow

    link
    brightness_4
    code

    // C++ program to get reverse of a cosnt 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 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 reversed string
        return rev;
    }
      
    // Driver code
    int main(void)
    {
        const char *s = "GeeksforGeeks";
        printf("%s", reverseConstString(s));
        return (0);
    }

    chevron_right

    
    

    Output:

    skeeGrofskeeG
    

This article is contributed by Priyam kakati, Ranju Kumari, Somesh Awasthi. 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



My Personal Notes arrow_drop_up

Improved By : Omkar Goulay