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