¿Lo que quieres es saber cuántas veces se repite UNA palabra, o cuántas veces se repite cada palabra del archivo?
En el caso de que sea la primera opción, aquí te dejo un ejemplo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main () {
char lpszText[] = "Esto es el texto que incluye el archivo. Esto no son datos reales Jaja";
char lpszWordToBeChecked[256] = ""; // Contendrá la palabra a ser comparada
char *lpszWord; // Contendrá las palabras leidas (solo una por ciclo)
unsigned int uRepeatedTimes = 0; // Numero de veces que se ha repetido la palabra
unsigned int nCounter = 0; // Contador usados en los ciclos 'for'
printf("Introduzca la palabra que desea que comparemos: ");
scanf("%s", lpszWordToBeChecked);
for(nCounter = 0; lpszWordToBeChecked[nCounter] != 0; nCounter++) { // Convertimos la palabra a ser comparada a minusculas para así poder comparar las cadenas
if(lpszWordToBeChecked[nCounter] >= 65 && lpszWordToBeChecked[nCounter] <= 90)
lpszWordToBeChecked[nCounter] += 32;
}
lpszWord = strtok(lpszText, " ,:.;-_123456789<>(){}/\\\""); // Tomamos una palabra de la cadena. El segundo parámetro contiene los caracteres que no forman una palabra
while(lpszWord != 0) {
for(nCounter = 0; lpszWord[nCounter] != 0; nCounter++) { // A minusculas (para poder comparar las cadenas)
if(lpszWord[nCounter] >= 65 && lpszWord[nCounter] <= 90)
lpszWord[nCounter] += 32;
}
if(strcmp(lpszWord, lpszWordToBeChecked) == 0) // Comparamos la cadena
uRepeatedTimes++;
lpszWord = strtok(NULL, " ,:.;-_123456789<>(){}/\\\""); // Tomamos la siguiente palabra de la cadena
}
printf("Las veces que se ha repetido la palabra '%s' son: %u", lpszWordToBeChecked, uRepeatedTimes); // Imprimimos el resultado final!
return 0;
}
PD.: USA LAS ETIQUETAS GeSHI!!