#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. /* char *readSingleWord(FILE *file) { if (file == NULL) { return 0; } fgets(singleWordBuffer, MAX_LINE_LEN, file); } */ // Read words from file and store in 'words' array int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount) { int currentlyInWord = 0; int word = 0; int wordChar = 0; char currentChar = 0; do { currentChar = fgetc(file); if ((currentChar >= 'A') && (currentChar <= 'Z')) { if (!currentlyInWord) { currentlyInWord = 1; } words[word][wordChar] = currentChar; wordChar++; } else if ((currentChar >= 'a') && (currentChar <= 'z')) { if (!currentlyInWord) { currentlyInWord = 1; } words[word][wordChar] = toupper(currentChar); wordChar++; } else if (currentlyInWord) { words[word][wordChar] = '\0'; word++; wordChar = 0; currentlyInWord = 0; } } while (((currentChar != EOF) && (word <= maxWordCount))); printf("wortzahl: %d\n", word); return word; } /* #define MAX_BUFFER_LEN 256 // 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) { int i = 0; int word = 0; int wordChar = 0; int firstLetter = 0; if (file == NULL) { return 0; } fgets(buffer, MAX_LINE_LEN * maxWordCount, file); //fscanf(file, "%s", buffer); do { if ((buffer[i] >= 'A') && (buffer[i] <= 'Z')) { if (!firstLetter) { firstLetter = 1; } words[word][wordChar] = buffer[i]; wordChar++; } else if ((buffer[i] >= 'a') && (buffer[i] <= 'z')) { if (!firstLetter) { firstLetter = 1; } words[word][wordChar] = toupper(buffer[i]); wordChar++; } else if (firstLetter) { words[word][wordChar] = '\0'; word++; wordChar = 0; firstLetter = 0; } i++; } while ((i < MAX_LINE_LEN) && (word < maxWordCount)); return word + 1; } */