My Own Logic:
#include<stdio.h> int main() { char str[200]; int i,j; gets(str); for(i=0;str[i]!='\0';i++); for(j=0;j<i;j++) { if(str[0]==str[i-1]){ printf("Palindrome\n"); break; }else{ printf("Not Palindrome\n"); break; } } printf("%d\n",i); printf("1st char = %c\n",str[0]); printf("last char = %c\n",str[i-1]); return 0; }
Another logic:
#include<stdio.h> int main() { char str[200]; int i,j,flag=0,lngth; gets(str); for(i=0; str[i]!='\0'; i++); lngth=i-1; for(j=0; j<lngth/2; j++) { if(str[j]==str[lngth-j]) { flag=1; } else { flag=0; } } if(flag==1) { printf("Palindrome\n"); } else { printf("Not Palindrome\n"); } return 0; }
Simple:
#include<stdio.h> int main() { char str[200]; int i,j,flag=0,lngth; gets(str); for(i=0; str[i]!='\0'; i++); lngth=i-1; for(j=0; j<lngth/2; j++) { if(str[j]==str[lngth-j]) { printf("Palindrome\n"); break; } else { printf("Not Palindrome\n"); break; } } return 0; }
another good logic:
#include<stdio.h> int main() { char str[20],rev[20]; int i,j,k,len; gets(str); for(i=0; str[i]!='\0'; i++); len=i-1; for(j=len,k=0; j>=0; j--,k++) { rev[j]=str[k]; } for(i=0; i<len; i++) { if(rev[i]==str[i]) { printf("Palindrome"); break; } else { printf("Not Palindrome"); break; } } return 0; }