Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NicolasPileci en 3 Junio 2017, 02:44 am



Título: Error en comparacion de strings.
Publicado por: NicolasPileci en 3 Junio 2017, 02:44 am
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!

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #define TAM 40
  5.  
  6. int verificarPalindromo (char[TAM] cad1, char[TAM] cad2);
  7.  
  8. int main()
  9. {
  10.    system ("color 0a");
  11.    char cad1[40],
  12.         cad2[40];
  13.    printf ("Ingrese la cadena: \n\n");
  14.    gets (cad1);
  15.    if (!verificarPalindromo (cad1, cad2))
  16.        puts ("La cadena es un palindromo");
  17.    else
  18.        puts ("La cadena no es un palindromo");
  19.    return 0;
  20. }
  21.  
  22. int verificarPalindromo (char[TAM] cad1, char[TAM] cad2)
  23. {
  24.    char *ini,
  25.         *fin;
  26.    ini = cad2;
  27.    fin = cad1;
  28.    while(*fin)
  29.    {
  30.        *ini = *fin;
  31.        fin++;
  32.    }
  33.    return strcmp (cad1, cad2);
  34. }
  35.  


Título: Re: Error en comparacion de strings.
Publicado por: engel lex en 3 Junio 2017, 03:50 am
el problema es que
Código
  1. char *ini,
  2. *fin;
  3. ///....
  4. while(*fin)
  5.  


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
Código:
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


Código:
atenta
^____^ -> a == a ->ok

atenta
 ^__^ -> t == t ->ok

atenta
  ^^ -> e != n -> fin -> no es palindromo



Título: Re: Error en comparacion de strings.
Publicado por: NicolasPileci en 3 Junio 2017, 15:26 pm
Muchas gracias!