In this program, we will learn how to find the reverse a number or string in C++ programming language.
We will be discussing a total of 5 ways.
- Finding reverse of a number
- Using While loop
- Using recursion
- Finding reverse of a string
- Using inbuilt function
- Using iterative method (for loop)
- And by using recursion
Let’s discuss these ways one by one.
Find the Reverse of a Number
Using while loop
Firstly, you have to ask the user to enter a number and store it in num variable. Now, start reversing that number to find its reverse and then display its reverse in the output.
To reverse a number, first make a variable say rev and place 0 to rev initially, and make one more variable say rem. Now place the modulus of the number to rem and place rev*10+rem to rev, now divide the number with 10 and continue until number will become 0.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <iostream> using namespace std; int main() { int num, rev=0, rem; cout<<"Enter a number: "; cin>>num; while(num!=0) { rem = num%10; rev = rev*10+rem; num /= 10; } cout<<"Reversed Number: " << rev << endl; return 0; } |
1 2 3 4 | Enter a number: 5486 Reversed Number: 6845 |
Using recursion
In this, we will use recursion. The recursive method reverseNumber() is used.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #include <iostream> #include <math.h> using namespace std; int reverseNumber(int num); int main() { int num, reverse; cout<<"Enter a number: "; cin>>num; reverse = reverseNumber(num); cout<<"Reverse Number: "<<reverse << endl; return 0; } //Recursive function to find reverse of any number int reverseNumber(int num) { // Finding total digits in num int digits = (int) log10(num); // Base condition if(num == 0) return 0; return ((num%10 * pow(10, digits)) + reverseNumber(num/10)); } |
1 2 3 4 | Enter a number: 34366 Reverse Number: 66343 |
Find the Reverse of a String
Using the for loop
In this program the user is asked to enter a string and it is stored in the variable str. The length of str is stored in the variable j and i is initialized as 0. Using a for loop, the string is reversed. The ith character of str is swapped with jth character using a temporary variable temp. The loop terminates when i is less than j. str is then printed which is the reversed string.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<iostream> #include<string.h> using namespace std; int main () { char str[50], temp; int i, j; cout << "Enter a string : "; cin >> str; j = strlen(str) - 1; for (i = 0; i < j; i++,j--){ temp = str[i]; str[i] = str[j]; str[j] = temp; } cout << "Reversed string : " << str << endl; return 0; } |
Output:
1 2 3 4 | Enter a string : helloworld Reversed string : dlrowolleh |
Using the inbuilt function
In this code, we will use the reverse() inbuild function.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include #include using namespace std; int main() { string str; cout << "Enter a string : "; cin >> str; // inbuild reverse function reverse(str.begin(), str.end()); cout << str << endl; return 0; } |
Using the recursion
In this, we will use recursion. The recursive method recursiveReverse() is used.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include<iostream> #include<algorithm> using namespace std; void recursiveReverse(string &str, int i = 0) { int n = str.length(); if (i == n / 2) return; swap(str[i], str[n - i - 1]); recursiveReverse(str, i + 1); } int main() { string str; cout << "Enter a string : "; cin >> str; recursiveReverse(str); cout << "Reversed string : " << str << endl; return 0; } |
Your website is simply excellent. Very helpful for junior programmers.