2016-03-26 5 views
-1

Ich fange an, C zu lernen und ich muss ein Programm schreiben, das die Anzahl der Wörter in einer Datei zählt. Ich kenne die Größe der Datei nicht, also wie kann ich ein Array deklarieren, ohne die Größe zu kennen? Ich weiß, dass die number_of_words nicht angegeben ist, aber was soll ich tun? (In meinem Code soll ich nicht verwenden fgets oder EOF nach Zuweisungsanweisungen)Schreibe ein Programm, das die Gesamtzahl der Wörter in einer Datei zählt c

int main(int argc, char const *argv[]) { 
    char* word[] = {"/usr/bin/ls", "-1", NULL}; 
    int number_of_words; 
    int i; 
    word = malloc (number_of_words * sizeof(char)); 
    FILE* f = fopen (argv[1], "r"); 
    fscanf(f, "%s", &word); 
    if (f == NULL) { 
     return -1; 
    } 

    for (i = 0; word[i] != NULL; i++) { 
     return i; 
    } 
} 
+3

Müssen Sie die Wörter speichern oder einfach zählen? Wenn Sie nur zählen, brauchen Sie kein Array. –

+0

Dies ist Teil der Aufgabe. Der andere Teil muss ich ein Programm schreiben, das die Anzahl der Vorkommen jedes einzelnen Wortes in einer Datei zählt und dann das häufigste Wortpaar und dann die häufigsten Quads findet, also muss ich die Wörter speichern. – user3328381

+1

Ihr Code sagt mir, dass Sie im Unkraut verloren sind. Versuchen Sie, eins mit Ihrem Prof zu bekommen. –

Antwort

0

Für diese Art von Problem, wie ich es von einem wenig von einem Compiler natürlich verstehen, sollten Sie Ihren Array dynamically- wachsen malloc Ihre Wahl der Startgröße, verfolgen, wie voll es ist, und Realloc, wenn es voll wird.

Ich würde Bing Bangs Gefühl zurückgeben, dass der Prof vielleicht in der Lage sein kann, Sie in die richtige Richtung zu führen. Ich habe meine Profs hilfreich gefunden.

Verwandte Themen