Buscar una palabra en un fichero - Programación C

lunes, 27 de septiembre de 2010

Continuamos con ejercicios de programación en C en los que trabajamos con ficheros de texto. En esta ocasión, buscaremos una palabra en un fichero, para saber cuantas veces aparece en él.

Ejercicio:
Escribe un programa que pida el nombre de un fichero. El programa abrirá ese fichero y nos pedirá que metamos una palabra a buscar. El programa le dirá al usuario cuantas veces se repite esa palabra.

Para ver la solución sigue leyendo.


/******   Inicio programa ******/


#include <stdio.h>


main()

{

      FILE *Fd;

      char fitxizen[30],palabra[30],texto[80];

      int i,tmp1,tmp2,konta=0;


      printf("Mete el nombre del fichero en el que buscaremos: \n");

      gets(fitxizen);

      printf("Mete la palabra a buscar en ese fichero: \n");

      gets(palabra);


      Fd=fopen(fitxizen,"r");

      if (Fd==NULL)

         printf("Error abriendo el fichero");


      while (feof(Fd)==0)

      {
            fgets(texto,80,Fd);

            for(i=0;i<strlen(texto);i++)

            {

               if (palabra[0]==texto[i])

               {

                  tmp1=0;

                  tmp2=i;

                  while ((palabra[tmp1]==texto[tmp2])&&(tmp2<strlen(texto))&&(tmp1!=strlen(palabra)))

                  {
                        tmp1++;

                        tmp2++;

                        if (tmp1==strlen(palabra))

                           konta++;
                  }
               }
            }
      }

      printf("La palabra se repite en el texto %d veces",konta);

      getchar();

}


/******   Fin programa******/

Artículos relacionados


Comments

10 Responses to “ Buscar una palabra en un fichero - Programación C ”
Post a Comment | Enviar comentarios ( Atom )

Anónimo dijo...

esta muy bueno el post pero aun tiene un problema por ejemplo si quieres buscar la palabra ida no solo te contara las veces que aparece la palabra ida, sino que tambien las palabras que contengan ida por ejemplo si tengo en el archivo vidas idas ida te la contara 3 veces;
aparte de eso esta muy bueno el post

24 de noviembre de 2010, 6:34

Buenas "Anónimo", efectivamente hará lo que comentas. No es un error sino que se ha programado para que haga eso :)

Saludos.

24 de noviembre de 2010, 6:36
Anónimo dijo...

DIN DIN!!! ERES MASTER C COMPAYN!!! ME HA VENIDO AL PELO ENGA NO TE FUMES MUCHOS DIMARIAS

1 de marzo de 2011, 17:29
Anónimo dijo...

por cierto de falta el fclose para cerrar el fichero compaynnnnn!!

1 de marzo de 2011, 17:31
Anónimo dijo...

hahahah está bunísimo pero se te paso declarar la librearía string ya que usas la funcion stdlen y marcará errores de no ser declarada

27 de noviembre de 2011, 3:00
Anónimo dijo...

muy bueno el ejemplo

2 de junio de 2012, 23:50
Anónimo dijo...

y si no quieres q pase lo q menciona el primer comentario?

23 de septiembre de 2012, 6:27

Estoy buscando esto hace banda. Muchisimas gracias

26 de octubre de 2012, 21:06
Anónimo dijo...

¿que quiere decir fgets(texto,80,Fd); ?

6 de julio de 2013, 2:49
Quarter dijo...

Muy buen aporte. Te debo una.

2 de noviembre de 2013, 1:33

Publicar un comentario en la entrada

Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.