#include "input.h" #include #include // TODO: // eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei // (words.txt) einliest und als C-String zurückgibt. // Read words from file and store in 'words' array int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { if (file == NULL) { perror("File couldn't be opened"); } // zunächst fehlerhaften String einlesen und in anderem Array // zwischenspeichern char fehlerhafterString[MAX_LINE_LEN]; char *teiler = " ;,.\n"; char *aktuellesWort; int wortAnzahl = 0; while (fgets(fehlerhafterString, sizeof(fehlerhafterString), file) != NULL && // während mit fgets alle Zeichen aus dem file eingelesen // werden wortAnzahl < maxWordCount) { aktuellesWort = strtok(fehlerhafterString, teiler); // Erstes Wort mit strtok aus dem // fehlerhaften String herauslösen while (aktuellesWort != NULL && wortAnzahl < maxWordCount) { // while strtok nicht am Ende ist und // noch Wörter in words passen strncpy(words[wortAnzahl], aktuellesWort, sizeof(words[wortAnzahl]) - 1); // mit strcpy das aktuelle Wort in words kopieren words[wortAnzahl][sizeof(words[wortAnzahl]) - 1] = '\0'; // Nullterminator mit sizeof des aktuellen Worts - 1 an Ende des // Worts setzen wortAnzahl++; // Nächstes Wort aktuellesWort = strtok(NULL, teiler); // Nächstes Token } } return wortAnzahl; // Anzahl der eingelesenen Wörter }