EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

Reverse String in C++

Home » Software Development » Software Development Tutorials » C ++ Programming Tutorial » Reverse String in C++

Reverse String in C++

Introduction to Reverse String in C++

Reverse a string in C++ means reading or changing the order of reading characters in the reverse order or backward direction. The definition of a string is, the string is an order collection of characters or sequence of characters. A string is an object of std: string class in C++. On the string, we can perform any operation like a copy, concatenation, conversion, comparison, reverse, etc. For example, the string “hello” if we read in reverse order or backward direction is “olleh”, so the string “hello” reverse is “olleh”. To reverse a string we can write C ++ program and use it to perform the reverse operation on string. String in C++ we can store in a variable in two ways, one way is to use as an object of std: string class and the second way are to store in a character array.

The Logic for Reverse String

The given string first stored in the character array. The length of character array is stored in the variable j and variable i is initialized to 0 and with a for loop the string can be reversed iteratively inside it Using a temporary variable temp the ith character of character array is swapped with jth character. Once i become less than j the loop terminates. Hence we get the character array in reverse order.

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

Examples for the Reverse String

The examples of the following are given below:

Example #1

By using for loop

Code:

#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
void revStr(string& strg)
{
for (int i=strg.length()-1; i>=0; i--)
cout << strg[i];
}
// main program
int main()
{        string strg = "Hello world";
revStr(strg);
return 0;
}

Output:

using for loop

As in the above output, we see the given string is printed in reverse order, but actually, it is not updated or edited to the string, just printing it.

Example #2

By using while loop

Code:

#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
void revStr(string& strg)
{
int i=strg.length();
while(i>=0)
{
cout <<strg[i];
i--;
}
}
// main program
int main()
{
string strg = "Hello world";
revStr(strg);
return 0;
}

Output:

using while loop

As again an output we can see is printed in reverse order, again actually it is not updated or edited to the string.

Popular Course in this category
C++ Training (4 Courses, 5 Projects, 4 Quizzes)4 Online Courses | 5 Hands-on Projects | 37+ Hours | Verifiable Certificate of Completion | Lifetime Access | 4 Quizzes with Solutions
4.5 (4,890 ratings)
Course Price

View Course

Related Courses
Java Training (40 Courses, 29 Projects, 4 Quizzes)C Programming Training (3 Courses, 5 Project)

Example #3

By using a do-while loop

Code:

#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
void revStr(string& strg)
{
int i=strg.length();
do
{
cout <<strg[i];
i--;
}while(i>=0);
}
// main program
int main()
{
string strg = "Hello world";
revStr(strg);
return 0;
}

Output:

using do-while loop

As again an output we can see is printed in reverse order, again actually it is not updated or edited to the string.

Example #4

Next, we write the C++ code to understand Reverse a String more clearly with the following example where we apply the keydown ( ) method to the first input text box element –

By swapping characters:

Code:

#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
void revStr(string& strg)
{
int last = strg.length();
//  characters are swaping from two both side
for (int i = 0; i < last / 2; i++)
// to swap characters using swap( ) built in function
swap(strg[i], strg[last - i - 1]);
}
// main code
int main()
{
string strg = "Hello world";
revStr(strg);
cout << strg;
return 0;
}

Output:

swapping characters

As in the above output, we see the given string is in reverse order.

Example #5

By using the reverse( ) built-in method

Code:

#include <bits/stdc++.h>
using namespace std;
int main()
{
string strg = "Hello world";
// using built in reverse method to reverse a string
// its syntax is void reverse(first, last)
reverse(strg.begin(), strg.end());
cout << strg;
return 0;
}

Output:

Reverse String in C++

Example #6

By using const string

Code:

#include <bits/stdc++.h>
using namespace std;
// Function to reverse a string
char* revConstStr(char const* strg)
{
int len = strlen(strg);
// dynamic pointer create of type char array
char *ptr = new char[len+1];
// copy the string to ptr pointer
strcpy(ptr, strg);
//  characters are swaping from two both side
for (int i=0, j=len-1; i<j; i++,j--)
swap(ptr[i], ptr[j]);
// return pointer of reversed string
return ptr;
}
// main code
int main(void)
{
const char *strg = "Hello world";
const char *str=revConstStr(strg);
for (int i=0; i<strlen(str); i++)
cout<<str[i];
return (0);
}

Output: 

Reverse String in C++

Conclusion

The string is an order collection of characters. To reverse a string in C++ is can be achieved by reading the string in reverse order character by character or backward direction character by character. A string is an object of std: string class in C++. We can reverse a string in multiple ways as in the above examples.

Recommended Articles

This is a guide to Reverse String in C++. Here we discuss the introduction, The Logic for Reverse String in C++ and the examples. You can also go through our other related articles to learn more –

  1. Deque in C++
  2. Reverse String in C#
  3. Type Casting in C++
  4. C# StringReader

C++ Training (4 Courses, 3 Projects, 4 Quizzes)

4 Online Courses

5 Hands-on Projects

37+ Hours

Verifiable Certificate of Completion

Lifetime Access

4 Quizzes with Solutions

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C plus plus Programming Tutorial
  • Programs
    • Patterns in C++
    • Star Patterns In c++
    • Swapping in C++
    • Reverse Number in C++
    • Palindrome Program in C++
    • Palindrome in C++
    • Factorial Program in C++
    • Fibonacci Series in C++
    • Square Root in C++
    • Random Number Generator in C++
    • Prime Number in C++
    • Leap Year Program in C++
    • Anagram in C++
    • Armstrong Number in C++
    • Reverse String in C++
    • Socket Programming in C++
    • Matrix Multiplication in C++
    • C++ using vs typedef
    • C++ vector vs list
    • C++ vector vs array
  • Basic
    • Introduction To C++
    • What is C++
    • Features of C++
    • Applications of C++
    • Best C++ Compiler
    • C++ Data Types
    • C++ Double
    • C++ unsigned int
    • User Defined Data Types in C++
    • Variables in C++
    • C++ Keywords
    • Pointers in C++
    • C++ Void Pointer
    • Function Pointer in C++
    • Iterator in C++
    • C++ Commands
    • Object in C++
    • C++ Literals
    • C++ Reference
    • C++ Undefined Reference
    • String in C++
    • C++ Programming Language (Basics)
    • C++ Identifiers
    • C++ Header Files
    • Type Casting in C++
    • C++ Formatter
  • Operators
    • C++ Operators
    • Arithmetic Operators in C++
    • Assignment Operators in C++
    • Bitwise Operators in C++
    • Relational Operators in C++
    • Boolean Operators in C++
    • Unary Operators in C++
    • C++ Operator[]
    • Operator Precedence in C++
    • C++ operator=()
  • Control Statements
    • Control Statement in C++
    • if else Statement in C++
    • Else If in C++
    • Nested if in C++
    • Continue Statement in C++
    • Break Statement in C++
    • Switch Statement in C++
    • goto Statement in C++
    • C++ Struct
    • Loops in C++
    • Do While Loop in C++
    • Nested Loop in C++
  • Functions
    • C++ String Functions
    • Math Functions in C++
    • Friend Function in C++
    • Recursive Function in C++
    • Virtual Functions in C++
    • strcat() in C++
    • swap() in C++
    • strcmp() in C++
    • ceil function in C++
    • C++ begin()
    • size() in C++
    • C++ test()
    • C++ any()
    • C++ Bitset
    • C++ find()
    • C++?Aggregation
    • C++?String append
    • C++ String Copy
    • C++ end()
    • C++ endl
    • C++ push_back
    • C++ shuffle()
    • malloc() in C++
    • C++ reserve()
    • C++ unique()
    • C++ sort()
    • C++ find_if()
    • Reflection in C++
    • C++ replace()
    • C++ search()
    • C++ Memset
    • C++ size_t
    • C++ Substring
    • C++ Max
    • C++ absolute value
    • C++ memcpy
    • C++ wchar_t
    • C++ free()
    • C++ sizeof()
    • C++ Move Semantics
  • Array
    • Arrays in C++
    • 2D Arrays in C++
    • 3D Arrays in C++
    • Multi-Dimensional Arrays in C++
    • C++ Array Functions
    • String Array in C++
    • C++ Length of Array
    • C++ arraylist
  • Constuctor and Destructor
    • Constructor and Destructor in C++
    • Constructor in C++
    • Destructor in C++
    • Copy Constructor in C++
    • Parameterized Constructor in C++
  • Overloading and overriding
    • Overloading and Overriding in C++
    • Overloading in C++
    • Overriding in C++
    • Function Overloading in C++
    • Function Overriding in C++
    • Method Overloading in C++
  • Inhertiance
    • Types of Inheritance in C++
    • Single Inheritance in C++
    • Multiple Inheritance in C++
    • Hierarchical Inheritance in C++
    • Multilevel Inheritance in C++
    • Hybrid Inheritance in C++
  • Sorting
    • Sorting in C++ 
    • Heap Sort in C++
    • C++ Vector Sort
    • Insertion Sort in C++
    • Selection Sort in C++
  • Advanced
    • C++ namespace
    • Encapsulation in C++
    • Access Modifiers in C++
    • Abstract Class in C++
    • C++ Class and Object
    • What is Template Class in C++?
    • C++ Algorithm
    • Data Structures and Algorithms C++
    • C++ Garbage Collection
    • Virtual Keyword in C++
    • Access Specifiers in C++
    • Storage Class in C++
    • Call by Value in C++
    • Multimap in C++
    • C++ Multiset
    • C++ Lambda Expressions
    • Stack in C++
    • C++ Static
    • C++ static_cast
    • Deque in C++
    • C++ Vector Functions
    • C++ 2D Vector
    • C++ List
    • C++ Mutable
    • Enum in C++
    • Abstraction in C++
    • Signal in C++
    • C++ Queue
    • Priority Queue in C++
    • Regular Expressions in C++
    • C++ Hash Table
    • File Handling in C++
    • C++ Stream
    • ifstream in C++
    • C++ ofstream
    • C++ fstream
    • C++ Read File
    • C++ iomanip
    • Macros in C++
    • Templates in C++
    • C++ setprecision
    • C++ Int to String
    • C++ thread( )
    • C++ Thread Pool
    • C++ thread_local
  • Interview question
    • C++ Interview Questions
    • Multithreading Interview Questions C++

Related Courses

C++ Training Course

Java Training Course

C Programming Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C++ Training (4 Courses, 3 Projects, 4 Quizzes) Learn More