diff --git a/Start_Windows/input.c b/Start_Windows/input.c index 3322ee3..4cd0faf 100644 --- a/Start_Windows/input.c +++ b/Start_Windows/input.c @@ -8,22 +8,25 @@ // Read words from file and store in 'words' array int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { - char trennzeichen = " ,;"; - char zeile [MAX_LINE_LEN]; //1024 - int anzahlWörter; - while (fgets(zeile, MAX_WORD_LEN - 1, file) != 0){ - char *token = strtok(zeile, trennzeichen); - while (token != NULL) + + char puffer[MAX_LINE_LEN]; //Array für eingelesene Zeile + int counter = 0; //Zähler für Anzahl eingelesener Wörter + int i; + + while(fgets(puffer, MAX_LINE_LEN-1, file) != NULL && counter < maxWordCount) + { + char *word_parts = strtok(puffer, ",;\n\t/. "); //Wörter aufteilen + + while(word_parts != NULL && counter < maxWordCount) { - // Wort ins Array kopieren, Länge begrenzen - strncpy(words[anzahlWörter], token, MAX_WORD_LEN - 1); - words[anzahlWörter][MAX_WORD_LEN - 1] = '\0'; - - anzahlWörter++; - - if (anzahlWörter >= maxWordCount) break; - - *token = strtok(NULL, trennzeichen); + for(i = 0; i < MAX_WORD_LEN -1 && word_parts[i] != '\0'; i++) + { + words[counter][i] = toupper(word_parts[i]); //Großbuchstaben erzeugen + } + words[counter][i] = '\0'; //Stringdefinition vervollständigen } - } + counter++; // Wort eingelesen, Wortzähler erhöhen + word_parts = strtok(NULL, ",;\n\t/. "); //NULL für Zeiger angeben + } + return counter; } \ No newline at end of file