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******/
Comments
10 Responses to “ Buscar una palabra en un fichero - Programación C ”
Post a Comment | Enviar comentarios ( Atom )
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;
24 de noviembre de 2010, 6:34aparte de eso esta muy bueno el post
Buenas "Anónimo", efectivamente hará lo que comentas. No es un error sino que se ha programado para que haga eso :)
24 de noviembre de 2010, 6:36Saludos.
DIN DIN!!! ERES MASTER C COMPAYN!!! ME HA VENIDO AL PELO ENGA NO TE FUMES MUCHOS DIMARIAS
1 de marzo de 2011, 17:29por cierto de falta el fclose para cerrar el fichero compaynnnnn!!
1 de marzo de 2011, 17:31hahahah 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:00muy bueno el ejemplo
2 de junio de 2012, 23:50y si no quieres q pase lo q menciona el primer comentario?
23 de septiembre de 2012, 6:27Estoy buscando esto hace banda. Muchisimas gracias
26 de octubre de 2012, 21:06¿que quiere decir fgets(texto,80,Fd); ?
6 de julio de 2013, 2:49Muy buen aporte. Te debo una.
2 de noviembre de 2013, 1:33Publicar un comentario
Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.