diff --git a/Startcode/input.c b/Startcode/input.c index ed77805..a87fa3e 100644 --- a/Startcode/input.c +++ b/Startcode/input.c @@ -5,8 +5,41 @@ // 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) -{ +// Read words from file and store in 'words' -} \ No newline at end of file + +int readWords(FILE *file, char words[][MAX_WORD_LEN], + unsigned int maxWordCount) +{ + if (file == NULL) { + return 0; + } + + char line[MAX_LINE_LEN]; + unsigned int wordCount = 0; + + while (wordCount < maxWordCount && + fgets(line, sizeof(line), file) != NULL) { + + char *word = strtok(line, " ,;\n\t\r"); + + while (word != NULL && wordCount < maxWordCount) { + strncpy(words[wordCount], word, MAX_WORD_LEN - 1); + words[wordCount][MAX_WORD_LEN - 1] = '\0'; + + unsigned int i = 0; + + while (words[wordCount][i] != '\0') { + words[wordCount][i] = + (char)toupper((unsigned char)words[wordCount][i]); + i++; + } + + wordCount++; + + word = strtok(NULL, " ,;\n\t\r"); + } + } + + return (int)wordCount; +}