Program to Reverse a String in C++ (All Methods)
Program to reverse a string
Today in this article we will learn how to reverse a string. There are various method top reverse a sting that we will be discussing in this page.
Reversing a string is a technique so that the 1st character becomes the last character and so on.
Lets understand this with the help of an example:-
- Input sting:- RITIKA
- Output sting:- AKITIR
Algorithm
Algorithm for C++ Program to Reverse a String
- Method 1: Swapping individual characters of the string
- Method 2: Using inbuilt function
- Method 3: Using additional character array to store reverse
- Method 4: Just printing the string in reverse from end
- Method 5: updation to char.at()
Method 1 (Program to reverse a string)
C++ Code :-
Run
#include <iostream>
#include <string.h>
using namespace std;
// function definition of the revstr()
void revstr(char *str1) {
// declare variable
int i, len, temp;
len = strlen(str1);
// use strlen() to get the length of str string
// use or loop to iterate the string
for(i = 0;i < len/2;i++)
{
//temp variable use to temporary hold the string
temp = str1[i];
str1[i] = str1[len - i - 1];
str1[len - i - 1] = temp;
}
}
int main()
{
char str[50] = "Priyanka";
cout << "Before reversing the string: " << str;
revstr(str);
cout<< "\nAfter reversing the string: " << str;
return 0;
}
Output:-
Before reversing the string: priyanka After reversing the string: aknayirp
Method 2
We can also reverse the string using some build in functions:-
- like strrev() is there in C but not in C++
- We can use reverse which is defined under the header file algorithm
- #include<algorithm> where str.begin() denotes the start and str.end() denotes end
Run
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
int main()
{
// declare string
string str = "PrepInsta";
cout << "Before Reversal: " << str;
// reverse which is defined under the header file
// algorithm #include
// str.begin() denotes the start
// and str.end() denotes end
reverse(str.begin(), str.end());
cout << "\nAfter Reversal: "<< str;
return 0;
}
Output:-
Before Reversal: PrepInsta
After Reversal: atsnIperP
Method 3
We can also reverse the string by storing the reverse in another array and then print.
- The idea is to transfer the string to another string in a reverse manner let the another array is rev.
- All we need is the size of the string.
- The method is to initialize a character array of the equal size and start copying the elements of the input string from the end.
- And display the rev
Run
#include <iostream>
#include <string.h>
using namespace std;
int main() {
char str[10] = "level", rev[10];
int i, j, count = 0;
cout << "String Before Reverse: " << str;
// finding the length of the string
while(str[count] != '\0'){
count++;
}
j = count - 1;
// Storing the array to another array
for (i = 0; i <= count; i++) {
rev[i] = str[j];
j--;
}
cout << "\nString After Reverse: " << rev;
return 0;
}
Output
String Before Reverse: level String After Reverse: level
Method 4
- This includes use of two pointers one at the starting and one at the end.
- the characters are then reversed one by one
- The process of reversing the string is done with the help of two pointers.
Run
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char str[] = "priyanka";
cout << "Original string: " << str;
cout << endl << "String after reverse: ";
for(int i = (strlen(str) - 1); i >= 0; i--)
cout << str[i];
return 0;
}
Output
original string: priyanka
String after reverse: aknayirp
Method 5
Write a C++ program to accept the string from the user and print the string in reverse order. in order to solve this problem use at() function
Run
/* Write a C++ program to accept the string from the user
and print the string in reverse order. in order to
solve this problem use at() function. */
#include <iostream>
using namespace std;
void revstr(string str)
{
int i, len;
char temp;
len = str.length();
for (i = 0; i < len / 2; i++) {
// using str.at() function
// str.at() returns char at index in a string
// can throw out of range exception if requested index out of bounds
temp = str.at(i);
str.at(i) =str.at(len - i - 1);
str[len - i - 1] = temp;
}
cout << "After reversing the string: " << str << endl;
}
// Driver code
int main()
{
string str("PrepInsta");
cout << "Before reversing the string: " << str << endl;
revstr(str);
return 0;
}
Output
Before reversing the string: PrepInsta
After reversing the string: atsnIperP
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
- Length of the string without using strlen() function : C | C++ | Java | Python
- Toggle each character in a string : C | C++ | Java | Python
- Count the number of vowels : C | C++ | Java | Python
- Remove the vowels from a String : C | C++ | Java | Python
- Check if the given string is Palindrome or not : C | C++ | Java | Python
- Print the given string in reverse order : C | C++ | Java | Python
- Remove all characters from string except alphabets : C | C++ | Java | Python
- Remove spaces from a string : C | C++ | Java | Python
- Remove brackets from an algebraic expression : C | C++ | Java | Python
- Count the sum of numbers in a string : C | C++ | Java | Python
- Capitalize the first and last character of each word of a string : C | C++ | Java | Python
- Calculate frequency of characters in a string : C | C++ | Java | Python
- Find non-repeating characters in a string : C | C++ | JAVA | Python
- Check if two strings are Anagram or not : C | C++ | Java | Python
- Replace a sub-string in a string: C | C++ | Java | Python
- Count common sub-sequence in two strings : C | C++ | Java | Python
- Check if two strings match where one string contains wildcard characters : C | C++ | Java | Python

Login/Signup to comment