In this post, we are going to make a palindrome program in c++ using for loop and recursion. We will make a program that will check whether the given word or sentence is a palindrome or not.
A palindrome is a word, number, phrase, or another sequence of characters that reads the same backward as forward, such as madam or racecar.
C++ program to Check for Palindrome Numbers
Palindrome Program in C++ using for loop
In this program, we run a for loop from 0 to n/2 where n is the size of the string. We are comparing character at an ith position with character at the n-i-1 position.
In short, we are comparing the first character with the last character, then the second character with the second last character and so on.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cout << "Enter String:";
getline(cin, str);
int n = str.size();
int flag = 0;
for (int i = 0; i <= n / 2; i++)
{
if (str[i] != str[n - i - 1])
{
flag = 1;
break;
}
}
if (flag == 0)
cout << "Yes, it is a palindrome" << endl;
else
cout << "No, it is not a palindrome" << endl;
return 0;
}
Enter any number or word: madam
Yes, it is a palindrome
Palindrome Program in C++ using reverse function
In this program, I made a string named “rev” which is the reverse of that string that is given by the user. Then, I compare them if they are the same then the input string is a palindrome.
If the reversed string is not the same as the input string then the input string is not a palindrome.
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str;
cout << "Enter String:";
getline(cin, str);
string temp = str;
reverse(str.begin(), str.end());
if (temp == str)
cout << "Yes, it is a palindrome" << endl;
else
cout << "No, it is not a palindrome" << endl;
return 0;
}
Palindrome String in Cpp using Recursion
#include <bits/stdc++.h>
using namespace std;
bool palindrome(char s[], int i = 0)
{
static int n = strlen(s);
if (i > n / 2)
return true;
return s[i] == s[n - i - 1] && palindrome(s, i + 1);
}
int main()
{
char input[50];
cout<<"Enter string: ";
cin >> input;
if (palindrome(input))
cout << input << " is a Palindrome" << endl;
else
cout << input << " is not a Palindrome" << endl;
return 0;
}
Enter String: gtg
gtg is a Palindrome