#include "input.h" #include #include int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { unsigned int count = 0; // Anzahl übernommener Wörter int j = 0; // aktuelle Wortlänge int ch; // eingelesenes Zeichen char buf[MAX_WORD_LEN]; // Puffer für ein Wort while ((ch = fgetc(file)) != EOF) { unsigned char c = (unsigned char)ch; if (isalnum(c)) { // Teil eines Wortes → Uppercase, sicher begrenzt if (j < (MAX_WORD_LEN - 1)) { buf[j++] = (char)toupper(c); } } else { // Trennzeichen: Wort abschließen, wenn vorhanden if (j > 0) { buf[j] = '\0'; strncpy(words[count], buf, MAX_WORD_LEN); count++; j = 0; if (count >= maxWordCount) break; } } } // Letztes Wort am Dateiende übernehmen if (j > 0 && count < maxWordCount) { buf[j] = '\0'; strncpy(words[count], buf, MAX_WORD_LEN); count++; } return (int)count; }