C Program to Check whether the Given String is a Palindrome

C Programming Language / String functions in C

1107

Program:

#include <stdio.h>
#include <string.h>

int main(){
    char string[20];
    int i, length;
    int flag = 0;
    
    printf("Enter a string:");
    scanf("%s", string);
    
    length = strlen(string);
    
    for(i=0;i < length ;i++){
        if(string[i] != string[length-i-1]){
            flag = 1;
            break;
   }
}
    
    if (flag) {
        printf("%s is not a palindrome\n", string);
    }    
    else {
        printf("%s is a palindrome\n", string);
    }
    return 0;
}

Output:

Output 1
Enter a string:roor
roor is a palindrome
Press any key to continue . . .

Output 2
Enter a string:rum
rum is not a palindrome
Press any key to continue . . .

Explanation:

To check if a string is a palindrome or not, a string needs to be compared with the reverse of itself.

Consider a palindrome string: radar,

---------------------------
index: 0 1 2 3 4

value: r a d a r
---------------------------

Palindrome String

To compare it with the reverse of itself, the following logic is used:

  1. 0th character in the char array, string1 is same as 4th character in the same string.
  2. 1st character is same as 3rd character.
  3. 2nd character is same as 2nd character.
  4. . . . .
  5. ith character is same as 'length-i-1'th character.
  6. If any one of the above condition fails, flag is set to true(1), which implies that the string is not a palindrome.
  7. By default, the value of flag is false(0). Hence, if all the conditions are satisfied, the string is a palindrome.

This Particular section is dedicated to Programs only. If you want learn more about C Programming Language. Then you can visit below links to get more depth on this subject.