SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: difer1125 en Miércoles 28 de Febrero de 2007, 19:15

Título: Buscar Una Palabra En Una Cadena
Publicado por: difer1125 en Miércoles 28 de Febrero de 2007, 19:15
amigos se que esta pregunta ya esta posteada en la pagina pero es que la verdad no dieron una respuesta concreta, mi duda es que no se como empezar a hacer un programite en la cual el usuario digite un texto y luego una palabra a buscar en el texto, cosa que el programa devuelva si esta o no la palabra y cuantas veces lo hace. pero tiene que ser la palabra completa.

ejemplo
char a[250]= "mi trabajo esta en la esquina del parque el lago."
char b[20]="la"
printf"la palabra esta en la frase y aparece 1 vez"

solo aparecera una vez, ya que la palabra "lago" no cuenta como "la" ya que pertenece a otra palabra.
mas o menos esa es la idea de lo que necesito que hago. por favor si pueden ayudarme posteen sus opiniones. muchas gracias
Título: Re: Buscar Una Palabra En Una Cadena
Publicado por: AnioN en Miércoles 28 de Febrero de 2007, 19:22
es muy facil, recorre el array y hace comparaciones. Ya sabes que las palabras estan separadas por un espacio o mas, y la ultima con un punto.
Título: Re: Buscar Una Palabra En Una Cadena
Publicado por: Eternal Idol en Miércoles 28 de Febrero de 2007, 19:23
Usa strstr y comproba los caracteres anterior y posterior.
Título: Re: Buscar Una Palabra En Una Cadena
Publicado por: AnioN en Miércoles 28 de Febrero de 2007, 20:23
Fijate si este codigo te sirve, lo hice en un rato. Puede que tenga errores.

Código: Text
  1. #include<stdio.h>
  2. #include<conio.h>
  3. #include<string.h>
  4.  
  5. int main() {
  6.   char ing[250];
  7.    char aux[20];
  8.    char pt[20];
  9.    int i = 0, j = 0;
  10.  
  11.    printf("Ingrese una cadana:");
  12.    fflush(stdin);
  13.    gets(ing);
  14.  
  15.    printf("Ingrese el patron a buscar:");
  16.    fflush(stdin);
  17.    gets(pt);
  18.  
  19.    while(ing[i] != '.') {
  20.      while((ing[i] != ' ') && (ing[i] != '.')) {
  21.         aux[j] = ing[i];
  22.        i++;
  23.          j++;
  24.       }
  25.  
  26.       aux[j] = '\0';
  27.       j = 0;
  28.      
  29.       if(strcmp(pt,aux)==0) {
  30.         printf("Se encontro la cadena.\n");
  31.          break;
  32.       }
  33.  
  34.       if(ing[i] !='.') {
  35.         i++;
  36.     } else {
  37.         printf("\nNo se encontro la cadena:");
  38.       }
  39.    }
  40.  
  41.   getch();
  42.   return 0;
  43. }
  44.  
Título: Re: Buscar Una Palabra En Una Cadena
Publicado por: difer1125 en Miércoles 28 de Febrero de 2007, 20:55
amigos muchas gracias por sus prontas respuesta me sirvio mucho sus sugerencias y por el codigo lo imlementare para hacer mi propia version del programa