Check if the given string is Palindrome or not in C
Understanding Palindrome
A palindrome is a string that reads the same forward and backward.
We will explore three different methods to check if a string is a palindrome using C.
Method 1: Using a Loop
This method iterates through the string and checks if it is a palindrome.
#include <stdio.h>
#include <string.h>
int isPalindrome(char str[]) {
int l = 0, r = strlen(str) - 1;
while (l < r) {
if (str[l] != str[r])
return 0;
l++, r--;
}
return 1;
}
int main() {
char str[] = "madam";
if (isPalindrome(str))
printf("Palindrome\n");
else
printf("Not a Palindrome\n");
return 0;
}
Output: Palindrome
Method 2: Using Recursion
This method checks palindrome property recursively.
#include <stdio.h>
#include <string.h>
int isPalindromeRecursive(char str[], int l, int r) {
if (l >= r) return 1;
if (str[l] != str[r]) return 0;
return isPalindromeRecursive(str, l + 1, r - 1);
}
int main() {
char str[] = "racecar";
if (isPalindromeRecursive(str, 0, strlen(str) - 1))
printf("Palindrome\n");
else
printf("Not a Palindrome\n");
return 0;
}
Output: Palindrome
Method 3: Using String Reverse
This method reverses the string and compares it with the original.
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello", rev[100];
strcpy(rev, str);
strrev(rev);
if (strcmp(str, rev) == 0)
printf("Palindrome\n");
else
printf("Not a Palindrome\n");
return 0;
}
Output: Not a Palindrome