FILE *fpFichero; char *pPuntero; char cCadena[75]; short sPalabra, sNumero, sIdentifica; sPalabra = sNumero = sIdentifica = 0; if((fpFichero = fopen("PRUEBA.TXT", "r")) != NULL) { while(fgets(cCadena, 70, fpFichero) != NULL) // Aquí leemos hasta el final del fichero por línea { pPuntero = strtok(cCadena, " "); while(pPuntero != NULL) // Aquí partimos la línea leída por espacios { if(Palabra(pPuntero)) // Aquí llamaremos a una función que devuelva si es una palabra sPalabra++; if(Numero(pPuntero)) // Aquí llamaremos a una función que devuelva si es un número sNumero++; if(Identifica(pPuntero)) // Aquí llamaremos a una función que devuelva si es un identificador sIdentifica++; pPuntero = strtok(NULL, " "); } } } fclose(fpFichero);
Habrá que leer línea por línea el fichero, luego separar estas líneas por los espacios y en cada palabra comprobar si es palabra, número o identificador, el separar se hace con la función strtok, haz tres funciones (esto te queda para ti) que devuelvan true o false para sumar o no a cada tipo, así al final en los datos sPalabra, sNumero, sIdentifica tendrás la suma de cada uno:Código: [Seleccionar] FILE *fpFichero; char *pPuntero; char cCadena[75]; short sPalabra, sNumero, sIdentifica; sPalabra = sNumero = sIdentifica = 0; if((fpFichero = fopen("PRUEBA.TXT", "r")) != NULL) { while(fgets(cCadena, 70, fpFichero) != NULL) // Aquí leemos hasta el final del fichero por línea { pPuntero = strtok(cCadena, " "); while(pPuntero != NULL) // Aquí partimos la línea leída por espacios { if(Palabra(pPuntero)) // Aquí llamaremos a una función que devuelva si es una palabra sPalabra++; if(Numero(pPuntero)) // Aquí llamaremos a una función que devuelva si es un número sNumero++; if(Identifica(pPuntero)) // Aquí llamaremos a una función que devuelva si es un identificador sIdentifica++; pPuntero = strtok(NULL, " "); } } } fclose(fpFichero);