Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Dato Vagabundo en 14 Enero 2017, 21:27 pm



Título: Buscar Palabra en una lista
Publicado por: Dato Vagabundo en 14 Enero 2017, 21:27 pm
Hola buenas, estoy haciendo una función que busca autores en una lista. Tengo la función que adjunto abajo, y no ese como comparar cada elemento de la lista con autor. Si alguien puede echarme una mano se lo agradeceria. Muchas gracias.



Código
  1. int BuscarAutor(LISTA *l, char *autor)
  2. {
  3.    NODO *aux=lista->primero;
  4.  
  5.    int i=0;
  6.  
  7.    int cuenta=0;
  8.  
  9.    if(aux==NULL)
  10.    {
  11.  
  12.        return NULL;
  13.    }
  14.    else
  15.    {
  16.  
  17.  
  18.        do {
  19.  
  20.            if(strcmp(aux,autor)==0)
  21.            {
  22.                cuenta++;
  23.  
  24.            }
  25.  
  26.  
  27.            aux=aux->siguiente;
  28.  
  29.  
  30.        }while(aux!=NULL);
  31.  
  32.        printf("Numero: %i\n",cuenta);
  33.        return NULL;
  34.  
  35.    }
  36.  
  37. }
  38.  
  39.  


Título: Re: Buscar Palabra en una lista
Publicado por: ivancea96 en 14 Enero 2017, 22:25 pm
En el strcmp, tendrás que poner aux->autor, o aux-> el dato que sea, no sé como se llama el campo de la estructura.


Título: Re: Buscar Palabra en una lista
Publicado por: Dato Vagabundo en 15 Enero 2017, 11:48 am
Si pongo aux->autor me entra solo una vez, aunque haya varios.


Título: Re: Buscar Palabra en una lista
Publicado por: MAFUS en 15 Enero 2017, 12:03 pm
Podrías mostrar como es LISTA y NODO. Los puedo intuir pero para estar seguro mejor verlo.

En la función no usas la LISTA que le has pasado pues esta la has llamado l y tú te refieres a ella como lista.

Devuelves NULL a un tipo de dato int. Debes devolver 0 o un valor negativo si la función hs fallado (una convención bastante extendida), pero no NULL.


Título: Re: Buscar Palabra en una lista
Publicado por: ivancea96 en 15 Enero 2017, 18:09 pm
Lo de aux->autor solo en strcmp, que es donde lo necesitas.


Título: Re: Buscar Palabra en una lista
Publicado por: francosmp en 17 Enero 2017, 03:08 am
en tu comparacion no estas usando el campo del dato a comparar, sino  estas usando el aux y el aux es un nodo (TDA) mas no una variable.  te recomiendo que uses compareto.
Salu2