generated from freudenreichan/info2Praktikum-Wortsalat
Input wurde geändert mit passenden Erklärungen
This commit is contained in:
parent
e30928d7c7
commit
3060c9f3dc
@ -1,13 +1,58 @@
|
||||
#include "input.h"
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <stdio.h> //fürs öffnen von Textdateien
|
||||
|
||||
// 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)
|
||||
{
|
||||
//test ob es funktioniert
|
||||
if (0 == maxWordCount){printf("hello")}
|
||||
}
|
||||
|
||||
FILE *quelle; //Zeiger auf quelle
|
||||
|
||||
quelle = fopen("words.txt", "r");
|
||||
|
||||
if (quelle ==0) { //Dateiöffnen geklappt?
|
||||
printf("Could not open file words.txt\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
char speicher [MAX_LINE_LEN]; //speichern einer Zeile
|
||||
int anzahlwörter =0;
|
||||
|
||||
if (fgets(speicher, sizeof(speicher), quelle)==0) {
|
||||
return 0; //falls nichts gelesen wird
|
||||
}
|
||||
|
||||
char *token = strtok(speicher, "\t\n,;. ");
|
||||
|
||||
while (token != NULL && anzahlwörter < maxWordCount) {
|
||||
strncpy(words[anzahlwörter], token, MAX_WORD_LEN-1); //kopiert wort von ab Zeiger *token in Zielarray words
|
||||
|
||||
words[anzahlwörter][MAX_WORD_LEN-1] = '\0'; //Sicherheit, dass es auch ein String ist
|
||||
|
||||
for (int i =0; words [anzahlwörter][i] =='\0' ;i++) { //alle Buchstaben im array words groß machen für optik
|
||||
|
||||
words [anzahlwörter][i] = toupper((unsigned char)words[anzahlwörter][i]);
|
||||
}
|
||||
|
||||
|
||||
anzahlwörter ++;
|
||||
token = strtok(NULL, "\t\n,;. "); //NULL, damit nicht mehr Anfangsadresse, sucht das nächste Wort in der Zeile
|
||||
}
|
||||
|
||||
fclose(quelle);
|
||||
return anzahlwörter; //wie viele Wörter wurden gespeichert im Array words
|
||||
|
||||
}
|
||||
|
||||
|
||||
//fgets liest eine ganze zeile ein und speicher alles im Array puffer/speicher.
|
||||
//Dann implementieren wir einen Zeiger, der auf die Funktion strtok zeigt,
|
||||
//die einen zeiger auf den ersten Buchstaben eines Worts im puffer zurückgibt.
|
||||
//Dann kopieren wir alles in das Array words [Count]
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user