Ejercicios : Contar palabras y caracteres de un fichero de texto…
La práctica o ejercicios con solución que se propone es realizar un ejercicio en el cual se ha de solicitar un fichero de texto por pantalla y a continuación leer cuantas palabras de x caracteres tiene el fichero que se ha leído.
La solución de los ejercicios que se plantean es la siguiente:
/*
Se quiere realizar un ejercicio o práctica de
programación que lea un archivo de texto y ofrezca
estadisticas sobre cuantas palabras de 1,2,3,4 y mas
de 4 letras hay en el texto, no se tendran en cuenta
los espacios en blanco como palabra.
Este ejercicio o práctica planteado por un usuario
del blog www.aprendoencasa.com es para que podais
aprender conceptos de programación en lenguaje c
y para que podais tener un lugar de consulta en
www.aprendoencasa.com
Vuelvo a recordar que no es la única forma de plantear
el programa, y por tanto siempre podeis enviar vuestras
opiniones o mejoras, las cuales en aprendoencasa.com
estare encantado de editarlas y publicarlas.
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
// Variables a utilizar
char NombreFichero[60];
FILE *Fichero;
char Linea[260];
char Contadores[50];
int cuantos;
// Se inicializan los contadores a cero
for(cuantos=0;cuantos<50;cuantos++) Contadores[cuantos]=0;
// Se solicita el nombre de archivo
printf("Nombre de archivo....: ");
scanf(" %s",NombreFichero);
// Se intenta la apertura del archivo
Fichero = fopen(NombreFichero,"rb");
// Si no existe el fichero se visualiza un error
// y no se hace nada
if(!Fichero) {
printf("\nEl archivo no existe o no se puede abrir...");
} else {
// El fichero se ha abierto correctamente y se procede
// leer el mismo linea a linea. Se considera una linea
// con un maximo de 255 caracteres.
// mientras no sea final de fichero
while(!feof(Fichero)) {
// se lee una palabra del archivo
fscanf(Fichero,"%s",Linea);
Contadores[strlen(Linea)]++;
}
// se visualizan las estadisticas
for(cuantos=1;cuantos<50;cuantos++) {
if(Contadores[cuantos]!=0)
printf("\nNo. de palabras de %d letra/s = %d",cuantos,Contadores[cuantos]);
}
}
return 0;
}
El resultado del programa en ejecución es el siguiente:
Gracias por vuestra visita y un saludo!!!