Estimados,
Serian tan amables de indicarme por que este programa me indica que debe haber una coma, un punto y coma o un parentesis antes de la variable "cad1".
La idea del programa es verificar si una frase es palindromo, pero por favor, no respondan la resolución del mismo.
Gracias!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TAM 40
int verificarPalindromo (char[TAM] cad1, char[TAM] cad2);
int main()
{
system ("color 0a");
char cad1[40],
cad2[40];
printf ("Ingrese la cadena: \n\n");
gets (cad1);
if (!verificarPalindromo (cad1, cad2))
puts ("La cadena es un palindromo");
else
puts ("La cadena no es un palindromo");
return 0;
}
int verificarPalindromo (char[TAM] cad1, char[TAM] cad2)
{
char *ini,
*fin;
ini = cad2;
fin = cad1;
while(*fin)
{
*ini = *fin;
fin++;
}
return strcmp (cad1, cad2);
}
el problema es que
char *ini,
*fin;
///....
while(*fin)
pero cuanto vale fin?
allí solo contiene basura
lo que tienes que hacer es leer cuanto tiene el string de largo (strlen) y recorrer desde el final hasta el principio y desde el principio hasta el final, comparando ambos lados es decir
palabra = arepera
arepera
^_____^ -> a == a ->ok
arepera
^___^ -> r == r ->ok
arepera
^_^ -> e == e ->ok
arepera
^_^ -> e == e ->ok
arepera
^ -> puntero_1 >= puntero_2 -> fin -> es palidromo
atenta
^____^ -> a == a ->ok
atenta
^__^ -> t == t ->ok
atenta
^^ -> e != n -> fin -> no es palindromo
Muchas gracias!