From 4f0c599056d236c29d023f48ed6dd97a7dde38b9 Mon Sep 17 00:00:00 2001 From: manusmac Date: Sun, 26 Oct 2025 20:16:17 +0100 Subject: [PATCH] =?UTF-8?q?input.c=20liest=20W=C3=B6rter=20richtig=20ein?= =?UTF-8?q?=20aber=20problem=20bei=20zahlen=20w=C3=BCrde=20aber=20f=C3=BCr?= =?UTF-8?q?s=20spiel=20langen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Start_Mac/input.c | 36 ++++++++++++++++++++++++++++++++++-- Start_Mac/runTests | Bin 0 -> 55776 bytes 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100755 Start_Mac/runTests diff --git a/Start_Mac/input.c b/Start_Mac/input.c index ed77805..45d76df 100644 --- a/Start_Mac/input.c +++ b/Start_Mac/input.c @@ -4,9 +4,41 @@ // TODO: // eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei (words.txt) einliest und als C-String zurückgibt. - +/** + * @param file Zeiger auf die geöffnete Datei + * @param words 2D-Array zum Speichern der Wörter + * @param maxWordCount Maximale Anzahl von Wörtern, die eingelesen werden sollen + * @return Anzahl der eingelesenen Wörter + */ // Read words from file and store in 'words' array int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { - + if (file == NULL || words == NULL || maxWordCount == 0) { + return 0; + } + + int wordCount = 0; + char line[MAX_LINE_LEN]; + + // Zeilen einlesen + while (wordCount < maxWordCount && fgets(line, MAX_LINE_LEN, file) != NULL) { + // Zeile in Wörter aufteilen (Trennzeichen: Leerzeichen, Komma, Semikolon, Newline) + char *token = strtok(line, " ,;\t\n\r"); + + while (token != NULL && wordCount < maxWordCount) { + // Prüfen ob Token nicht leer ist + if (strlen(token) > 0 && strlen(token) < MAX_WORD_LEN) { + // Wort kopieren und in Großbuchstaben umwandeln + strcpy(words[wordCount], token); + for (int i = 0; words[wordCount][i] != '\0'; i++) { + words[wordCount][i] = toupper((unsigned char)words[wordCount][i]); + } + wordCount++; + } + // Nächstes Wort + token = strtok(NULL, " ,;\t\n\r"); + } + } + + return wordCount; } \ No newline at end of file diff --git a/Start_Mac/runTests b/Start_Mac/runTests new file mode 100755 index 0000000000000000000000000000000000000000..17417bb8f8315a6a29dac348549ddc9f9fbdb612 GIT binary patch literal 55776 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 literal 0 HcmV?d00001