Palíndromos em C ANSI
Nunca esqueço de uma prova de Programação I, do 2º semestre da faculdade, onde uma das questões consistia em fazer uma função que verificasse se a palavra passada por referência é um palíndromo, uma palavra que pode ser lida tanto da esquerda para a direita, quanto da direita para a esquerda. Lembro que não fui bem sucedido na época (rsrs), mas tá ai a dita função, escrita em C ANSI.
#include <stdio.h>
#include <string.h>
int ehPalindromo(char *string){
char *s2 = string + strlen(string) - 1;
if (!*string){
return 1;
}
while(*string++ == *s2-- && *string);
return !*string && *(--string) == *(++s2);
}
int main(){
char string[255];
printf("Palavra: ");
gets(string);
printf("%s %s n", string, ehPalindromo(string) ? "eh palindromo" : "nao eh palindromo");
return(0);
}