Updated March 17, 2023
Introduction on Palindrome Program in C++
Like any other programming language, we can perform the various operation in C++ also. In this article, we are going to see how to test the Palindrome Program in C++ with the help of some examples. Before that, first, we will see what is the meaning of Palindrome. A Palindrome is a result that gives the same value after reversing the original value. The logic behind palindrome is as simple as it sounds. For example, MOM if you find out the reverse of MOM, it, the result will be the same i.e. MOM. So we can say that MOM is a Palindrome.
Some Examples to Identify whether they are Palindrome or not
- 78987: the reverse is 78987, so it is a palindrome.
- LOL: Reverse is LOL, so it is a palindrome.
- 56425: Reverse is 52465, so it is not a palindrome.
- fare: Reverse is era, so it is not a palindrome.
Form the above-mentioned example, we can now identify whether it is a palindrome or not. But we have solved these above examples orally. Let us see how this oral logic is performed in a programming language like C++. Before moving to that, first, we will see the algorithm of check palindrome value in the C++ program.
The algorithm to test Palindrome in C++ program is given as below:
1. Get an input form the user.
2. Store that input value in a temporary variable.
3. Find the reverse of the input value.
4. Compare both values’ reverse and temporary variables.
5. If both values match print it is a palindrome
6. If both values do not match, print it is not a palindrome.
How to Check the Palindrome in the C++ Program?
In this section, we are going to see how to check palindrome in C++ language using various methods like while loop, for loop and do while loop with the help of examples.
Example #1: Program to check Palindrome in C++ using a while loop
Code:
#include<iostream>
using namespace std;
int main()
{
int num, reverse_num = 0, temp_num;
cout << "Enter random number to check palindrome value:"; // allow user to enter a number
cin >> num; // takes value from user
temp_num = num; //store number to temp_number
while (num != 0)
{
reverse_num = reverse_num * 10;
reverse_num= reverse_num + num% 10;
num = num / 10;
}
if(temp_num == reverse_num) // check reverse number with original number
{
cout << "Given number is palindrome"; //if match, print palindrome
}
else
{
cout << "Given number is not a palindrome"; // If it doesn’t match with original print, not a palindrome
}
return 0;
}
Explanation of the above program
In the above program to check whether the value is a palindrome or not, we use a while loop. Here we initialize 3 variables num for storing the value entered by the user, reverse_num to store the reverse value and temp_num to store value temporary. While loop first checks the condition before the execution of the loop. It if matches the condition it will execute the statements declared within the loop. Here we use while loop to find the reverse of the value. once the reverse value is calculated it transfers flow control to if statement. If the condition matches, i. E if the reverse value is equal to the temp variable it will show the Given value is palindrome else it will show given value is not a palindrome.
Output:
Example #2: Program to check Palindrome in C++ using For loop
Code:
#include<iostream>
using namespace std;
int main()
{
int num, remainder_num, reverse_num = 0, i, temp_num;
cout << "Enter random number to check palindrome value:"; // allow user to enter a number
cin >> num; // takes value from user
temp_num = num; //store number to temp_number
for(i = num; i >0;)
{
remainder_num= i % 10;
reverse_num = remainder_num+ reverse_num * 10;
i = i/ 10;
}
if(temp_num == reverse_num) // check reverse number with original number
{
cout << "Given number is palindrome"; //if match, print palindrome
}
else
{
cout << "Given number is not a palindrome"; // If it doesn’t match with the original print, not a palindrome
}
return 0;
}
Explanation of the above program
In the above-mentioned program to test whether the number is Palo or not, we used for loop method. Here we initialized four variables num to tore value, remainder_num to store the remainder value of the number, reverse_num to store reverse value and temp_num to store value temporary. To find the reverse value we used for the loop method. In for loop, first, we initialize value, then apply conditions and last mentioned the increment. For loop check the condition and excuses loop until the condition becomes false. Once the reverse number is calculated we test the palindrome value the same as we discussed in the first method i.e while loop.
Output:
Example #3: Program to check Palindrome in C++ using the do-while loop
Code:
#include<iostream>
using namespace std;
int main()
{
int num, reverse_num = 0, temp_num;
cout << "Enter random number to check palindrome value:"; // allow user to enter a number
cin >> num; // takes value from user
temp_num = num; //store number to temp_number
do
{
reverse_num = reverse_num * 10;
reverse_num = reverse_num+ num % 10;
num = num / 10;
}while(num != 0);
if(temp_num == reverse_num) // check reverse number with original number
{
cout << "Given number is palindrome"; //if match, print palindrome
}
else
{
cout << "Given number is not a palindrome"; // If it doesn’t match with the original print, not a palindrome
}
return 0;
}
Explanation of the above program
In the above-mentioned program, to test whether the number is palindrome or not we used to do while loop method. It is the same as while loop only difference is while loop first checks the condition and then execute loop whether the do-while loop first executes the loop and then check condition. If the condition is true it will execute the loop until the condition becomes false. Here to find the reverse value of the number, we used the do-while loop. And once the reverse value is calculated it compares the reverse value with temporary value and prints the result using the if-else statement as we discussed in the first example.
Output:
Example #4: Program to check whether String is Palindrome or not in C++
Code:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char string[25];
int i, length, flag = 0;
cout << "Enter random string to check palindrome:"; // allow user to enter string
cin >> string; // takes string as a input
length = strlen(string); //counts string length
for(i = 0; i < length; i++)
{
if(string[i] != string[length-i-1])
{
flag = 1;
break;
}
}
if(flag)
{
cout << "Given string is not palindrome";
}
else {
cout << "Given string is palindrome";
}
return 0;
}
Explanation of the above program
In previous examples, we check palindrome for the value. In the above program, we have test palindrome for the string. First, we initialize string to store the string values. Here we used the strlen() keyword to find the length of the string. The logic for the string is the same as for numbers. Here to find the reverse of the string we used for loop. Once the reverse of the given string is calculated, it will transfer control to the if-else statement to print the result.
Output:
Conclusion
In this article, some examples along with a detailed explanation, we have seen how to test whether a number or string is a palindrome or not using the C++ language. I hope this article will help you to understand how the Palindrome number works and that you will find this article helpful.
Recommended Articles
This is a guide to Palindrome Program in C++. Here we discuss basic concept, how to check Palindrome in C++ program along with examples and code implementation. You can also go through our other related articles to learn more-