Hola, estoy aprendiendo a estudiar C, y estoy encallado en un ejercicio, mañana tengo el examen y pff.. espero que me podáis ayudar:
El ejercicio me pide que cree un programa que reconozca palindromos (frases o palabras que se leen tanto de derecha a izquierda, como de izquierda a derecha)
ej: Abusón, acá no suba (evidentemente en el programa no pondremos acentos ni comas)
yo he escrito de momento esto:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
void invertida (char text[]);
int main ()
{
char text[100], text2[100];
int j, i;
printf("\n Introduce un texto ");
gets(text);
strcpy(text2, text);
invertida(text);
j=strcmp(text, text2);
if(j==0)
printf("\n Es un palindromo ");
else
printf("\n No es un palindromo ");
printf("\n FIN DEL PROGRAMA \n ");
system("pause");
}
void invertida (char text[])
{
int i, longitud;
longitud=strlen(text);
for(i=longitud-1; i>=0; i--)
{
}
}
Para saber si es un palíndromo, copio el texto con strcpy en otra char, luego invierto el texto original, y por último los comparo con strcmp, y lo igualo a j para poder hacer el if mas tarde. En teoría, si coinciden todos los caracteres, retorna un 0, y por eso pongo if (j==0)
El error creo que está en la función, en el bucle del for, y/o en la llamada a la función "invertida(text);" y me temo que será una tontería... pero bueno.. me tiene loco ya xD
Espero que me podais ayudar! Gracias!
PD: Perdón por si he hecho una estupidez con el programa... llevo poco estudiando C xD