Given a string, write a C/C++ program to reverse it.
- 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
- 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
- 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
- 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
- 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.