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

    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

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter