fertig teil alex

This commit is contained in:
meinkeal103474 committed 2026-11-05 03:03:25 +01:00
1 parent 5d9fbdf925
commit ed3cb33574
1 file changed
+54
+54
View File
@@ -4,9 +4,63 @@
// TODO:
// eine Funktion implementieren, die ein einzelnes Wort aus einer Textdatei (words.txt) einliest und als C-String zurückgibt.
// Liest eine Zeile und uns schreibt oder speichert Sie im buffer. Unserre Rückgabe wird sein: A) entweder buffer (als C-String) oder NULL, wenn kein Wort mehr gelesen werden kann.
static char *readWord(FILE *file, char *buffer, unsigned int bufferSize)
{
char line[MAX_LINE_LEN];
unsigned int length = 0;
unsigned int i = 0;
if (file == NULL || buffer == NULL || bufferSize == 0)
{
return NULL;
}
// Zeile für Zeile lesen, bis ein nicht-leeres Wort gefunden ist
while (fgets(line, MAX_LINE_LEN, file) != NULL)
{
// Zeilenumbruch, Wagenrücklauf und Leerzeichen am Ende entfernen
length = strlen(line);
while (length > 0 && (line[length - 1] == '\n' ||
line[length - 1] == '\r' ||
line[length - 1] == ' '))
{
length--;
line[length] = '\0';
}
// Leere Zeilen überspringen
if (length > 0)
{
// Sicher in den Zielpuffer kopieren und terminieren
strncpy(buffer, line, bufferSize - 1);
buffer[bufferSize - 1] = '\0';
// In Großbuchstaben umwandeln (das Spielfeld wird mit 'A'-'Z' gefüllt)
for (i = 0; buffer[i] != '\0'; i++)
{
buffer[i] = toupper((unsigned char)buffer[i]);
}
return buffer;
}
}
return NULL; // Dateiende erreicht
}
// Read words from file and store in 'words' array
int readWords(FILE *file, char words[][MAX_WORD_LEN], unsigned int maxWordCount)
{
unsigned int count = 0;
// Wörter lesen, bis das Array voll ist oder die Datei zu Ende ist
while (count < maxWordCount && readWord(file, words[count], MAX_WORD_LEN) != NULL)
{
count++;
}
return count;
}