Tutorialspoint.dev

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++.
    // 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[beign..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);
    }

    /div>

    Output:

    skeeg rof skeeG
    
  4. Getting reverse of a const string:
    // 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);
    }

    Output:

    skeeGrofskeeG
    

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



This article is attributed to GeeksforGeeks.org

You Might Also Like

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter