Ejercicio 4 esPalindrome

Ejercicio 4 esPalindrome

de Bruno Alejandro Casco Alarcon -
Número de respuestas: 4

Buenas, estoy teniendo un error en la función esPalindrome y no entiendo que puede ser. Adjunto mi código por si alguien ve donde me estoy equivocando:

bool esPalindrome(char *frase)
{
int inicio = 0;
int final = strlen(frase);
int mitad = final/2;
while ((frase[inicio] == frase[final]) && (inicio <= mitad))
{
inicio++;
final--;
}
return (inicio > mitad);
}

En resumen lo que quiero hacer es fijar la posición de la mitad del arreglo e ir comparando la primera letra con la última, la segunda con la penúltima y así sucesivamente hasta llegar a la letra de la mitad siempre y cuando todas las comparaciones anteriores hayan sido iguales. y en ese caso la función retornaría true (estoy usando el main que ya viene implementado en el módulo del practico 00).

Si alguien me puede dar una mano con esto le agradezco mucho.

Saludos.

En respuesta a Bruno Alejandro Casco Alarcon

Re: Ejercicio 4 esPalindrome

de Ismael De Los Santos Rodriguez -
Yo hice algo muy parecido y pensaba que mi código estaba mal hasta que me di cuenta que el modulo de testeo detecta un espacio, por ejemplo cuando pones esPalindrome palabra la entrada se toma como " palabra" entonces intenta poner un espacio luego de escribir cada frase para equilibrarlo y fíjate si te funciona
En respuesta a Bruno Alejandro Casco Alarcon

Re: Ejercicio 4 esPalindrome

de Lucas Fernandez Corbo -
Buenas, no te olvides que el indice de los arreglos van desde 0 hasta n-1, y en el while cuando haces frase[final] estas accediendo a un indice en el que no hay ningun caracter.
ej: hola va a tener strlen(frase)=4 , frase[0]=h , frase[1]=o , frase[2]=l,
 frase[3]=a y frase[4] = indefinido
En respuesta a Lucas Fernandez Corbo

Re: Ejercicio 4 esPalindrome

de Bruno Alejandro Casco Alarcon -
Buenas, eran las 2 cosas que me dijeron. Dejé un espacio después de escribir la palabra y en el while puse frase[final -1] y ahora me anda bien. Muchas gracias a los 2!.
En respuesta a Bruno Alejandro Casco Alarcon

Re: Ejercicio 4 esPalindrome

de Fernando Fernandez -
Hola.
Sí, estaba el problema que señala Ismael, y su solución sirve.
De todas formas hay una nueva versión que debería funcionar bien sin necesidad de agregar el espacio.
Además, dado que en uno de los prácticos un compañero detectó un warning, se modificó el tamaño del arreglo resto_linea.
También se agregó un comando para procesar el ejercicio de ordenamiento.