#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) // { // } // Wörter aus einer Datei lesen und im Array 'words' speichern // Gibt die Anzahl der gelesenen Wörter zurück oder -1 im Fehlerfall. int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { if (file == NULL) { fprintf(stderr, "Fehler: Datei ist NULL.\n"); return -1; } unsigned int count = 0; char buffer[512]; // Ganze Datei zeilenweise lesen while (fgets(buffer, sizeof(buffer), file) != NULL && count < maxWordCount) { // Entfernt Zeilenumbruch '\n' oder '\r\n' buffer[strcspn(buffer, "\r\n")] = '\0'; // Zerlegt die Zeile in Wörter mit den Trennzeichen: Leerzeichen, Komma, Semikolon char *token = strtok(buffer, " ,;"); while (token != NULL && count < maxWordCount) { // Leerzeichen am Anfang und Ende entfernen while (isspace((unsigned char)*token)) token++; char *end = token + strlen(token) - 1; while (end > token && isspace((unsigned char)*end)) { *end = '\0'; end--; } // In Großbuchstaben umwandeln for (unsigned int i = 0; i < strlen(token); i++) { token[i] = (char)toupper((unsigned char)token[i]); } // In das Array 'words' kopieren strncpy(words[count], token, MAX_WORD_LEN - 1); words[count][MAX_WORD_LEN - 1] = '\0'; count++; token = strtok(NULL, " ,;"); } } return count; }