input.c verbessert
This commit is contained in:
parent
78d9694821
commit
476887d5ab
21
input.c
21
input.c
@ -18,7 +18,12 @@
|
||||
|
||||
// Read words from file and store in 'words' array
|
||||
int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount)
|
||||
{
|
||||
{ //Gibt die Anzahl der eingelesen Wörter zurück (wordCount), für main wie viel gelesen wurde
|
||||
//FILE *file: Zeiger auf Datei --> FILE komplexes Objekt, müssen mit Adresse arbeiten
|
||||
//Wort = String = Array von Zeichen (char) --> Zeilen: Wörteranzahl und Spalten: Buchstaben der Wörter
|
||||
//wie viele Wörter max in Array geschrieben werden dürfen
|
||||
|
||||
|
||||
if (file == 0)
|
||||
return 0; //Sicherheitsprüfung
|
||||
|
||||
@ -29,7 +34,7 @@ int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount)
|
||||
while(fgets(line, sizeof(line), file) != NULL)
|
||||
{
|
||||
// Zerlege die Datei in einzelne Wörter
|
||||
char *token = strtok(line, ",;\n\t");
|
||||
char *token = strtok(line, ".,;\n\t");
|
||||
|
||||
while (token != NULL && wordCount < maxWordCount)
|
||||
{
|
||||
@ -38,24 +43,12 @@ int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount)
|
||||
words[wordCount][MAX_WORD_LEN -1] = '\0';
|
||||
|
||||
|
||||
// Entferne führende Leerzeichen
|
||||
int start = 0;
|
||||
while (words[wordCount][start] == ' ')
|
||||
start++;
|
||||
if (start > 0)
|
||||
memmove(words[wordCount], words[wordCount] + start, strlen(words[wordCount]) - start + 1);
|
||||
|
||||
// Entferne nachfolgende Leerzeichen
|
||||
int end = strlen(words[wordCount]) - 1;
|
||||
while (end >= 0 && words[wordCount][end] == ' ')
|
||||
{
|
||||
words[wordCount][end] = '\0';
|
||||
end--;
|
||||
}
|
||||
|
||||
|
||||
wordCount++;
|
||||
|
||||
token = strtok(NULL, ",;\n");
|
||||
}
|
||||
// Wenn max Wortzahl erreicht ist abbrechen!
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user