El ejercicio dice lo siguiente:
Una prueba de un programa de television consiste en obtener el palindromo mas largo posible.
Un palindromo es una frase que se lee igual en ambos sentidos.
Para facilitar el proceso los jeuces quiere un programa que les diga si la frase es un palindromo.
Por ejemplo: "dabale arroz a la zorra el abad".
El palindromo puede contener espacios en blanco que no deben considerarse.
Haced con punteros y funciones.
Vale pues yo lo he hecho en casita ahora y me compila pero cuando llega a los strcmp CASCA.
Ademas creo que el compilador no debe estar muy bien porque me ha tocado usar "gets(palabra);" cuando en clase bajo el mismo compilador uso siempre "scanf("%s",&palabra);" y aqui en casa ahora no va...
Mi codigo:
#include <stdio.h>
#include <stdlib.h>
main()
{
char palabra[50];
leer(palabra);
juntar(palabra);
comprobar(palabra);
getch();
}
leer(char *palabra)
{
gets(palabra); // QUERIA USAR "scanf("%s",&palabra);", PERO NO ME LO TRAGA Y ESO QUE EN EL COMPILADOR DE CLASE SIEMPRE PERO AQUI NO...
}
juntar(char *palabra)
{
int i=0,j=0,max=0;
max=strlen(palabra);
char palabra2[50];
for (i=0;i<max;i++) // QUITAMOS ESPACIOS Y LO GUARDAMOS EN PALABRA2
{
if( strcmp(palabra[i],' ')!=0 )
{
palabra2[j]=palabra[i];
j++;
}
}
for (i=0;i<max;i++) // COPIAMOS PALABRA2 en PALABRA
{
palabra[i]=palabra2[i];
}
}
comprobar(char *palabra)
{
int i=0,max=0,contador=0;
max=strlen(palabra);
for (i=0;i<max/2;i++)
{
if( strcmp(palabra[i],palabra[max-i])!=0 )
{contador=1;}
}
if (contador==0)
{
printf("SI ES UN PALINDROMO\n");
}
else
{
printf("NO ES UN PALINDROMO\n");
}
}
Nota: EL quote se ha cargado los espacios que hace que sea leible mas facimente...
NOTA2: Lo he puesto en varios quotes para que sea mas facil leerse...