Hola a todos, tengo que hacer un programa que identifique las frases palíndromas. Tengo este código, pero falla en el if al comprobar la cadena con la cadena invertida:
En esencia la idea está bien pero mal implementada:
* Al usar "strrev(frase2)" de forma automática la frase 2 queda invertida y lógicamente es siempre igual a si misma.
* Lo anterior lleva al uso de una tercera cadena para guardar frase1 igual a frase2:
for (letra1 = 0; letra1 <= strlen(frase1) ; letra1++)
if (frase1[letra1] != ' ')
frase2[letra2++] = frase1[letra1] , frase3[letra2 - 1] = frase1[letra1];
y a continuación no hay más que comparar frase3 con frase2 invertida.
* Pero ahí viene el otro error grave que tienes que es comparar en el if dos cadenas con "==" cuando eso en C no es válido. Para ello has de usar "strcmp":
if (strcmp (frase3 , strrev(frase2)) == 0)
printf("\nTu frase es palindroma!");
else
printf("\nTu frase no es palindroma!");
Con esas correcciones tu código es totalmente funcional.
Aunque las otras ideas que te han dado son más "chachis".
P.D:Te falta el "return" de main.
¡¡¡¡ Saluditos! ..... !!!!