Programm zum Lesen von Worten aus einer Datei und die Anzahl Ihrer vorkommen in der Datei

Ich bin derzeit versucht, ein Programm, das eine Datei Lesen, finden jedes eindeutige Wort und zählen die Anzahl der Zeiten, das Wort erscheint in der Datei. Was ich derzeit habe Fragen den Benutzer nach einem Wort und sucht die Datei für die Anzahl der Male das Wort erscheint. Aber ich brauche das Programm zum Lesen der Datei selbst, anstatt den Benutzer auffordert, für ein einzelnes Wort.

Dies ist, was ich derzeit habe:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char const *argv[])
{   
int num =0;
char word[2000];
char *string;

FILE *in_file = fopen("words.txt", "r");

if (in_file == NULL)
{
    printf("Error file missing\n");
    exit(-1);
}

scanf("%s",word);

printf("%s\n", word);

while(!feof(in_file))//this loop searches the for the current word
{
    fscanf(in_file,"%s",string);
    if(!strcmp(string,word))//if match found increment num
    num++;
}
printf("we found the word %s in the file %d times\n",word,num );
return 0;
}

Ich brauche nur etwas Hilfe herauszufinden, wie die Datei zu Lesen, für einzigartige Wörter (es wurde nicht überprüft, für noch), obwohl andere Vorschläge für mein Programm geschätzt wird.

Sie benötigen, um eine Tabelle der Wörter, die Sie gesehen haben und wie viele Male haben Sie Sie gesehen. C nicht, einen solchen Mechanismus, so dass Sie brauchen, um Ihre eigenen oder nutzen Sie die Bibliothek, aber so etwas wie einen Baum oder hash-Tabelle angebracht wäre.
Nebenbei, nicht verwenden feof() - Sie überprüfen sollten Sie das Ergebnis fscanf() statt (oder zumindest den ersten).

InformationsquelleAutor undone98 | 2013-03-19

Schreibe einen Kommentar