Sunday, September 2, 2012

Write a program to check whether a given string is a palindrome.

    Palindrome is a string, which when read in both forward and backward way is same.
    Example: radar, madam, pop, lol, etc.,
    Program:
    #include <stdio.h>
    #include <string.h>
    int main() {
     char string1[20];
     int i, length;
     int flag = 0;
     printf("Enter a string: \n");
     scanf("%s", string1);
    
     length = strlen(string1);
     for(i=0;i < length ;i++){
      if(string1[i] != string1[length-i-1]){
       flag = 1;
       break;
      }
     }
    
     if (flag) {
      printf("%s is not a palindrome\n", string1);
     }
     else {
      printf("%s is a palindrome\n", string1);
     }
     return 0;
    }
    Output:
    Enter a string: radar
    “radar” is a palindrome
    Explanation with example:
    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
    ---------------------------
    To compare it with the reverse of itself, the following logic is used:
    
    0th character in the char array, string1 is same as 4th character in the same string.
    1st character is same as 3rd character.
    2nd character is same as 2nd character.
    . . . .
    ith character is same as 'length-i-1'th character.
    
    If any one of the above condition fails, flag is set to true(1), which implies that the string is not a palindrome.
    By default, the value of flag is false(0). Hence, if all the conditions are satisf

No comments:

Post a Comment