Edit: Handelt sich um ein C Programm
Hallo!
Vorab: Ich bin absoluter Programmier Newbie und habe mich nun die letzten 3 Tage etwas mit C beschäftigt.
Es geht um folgen Übung:
Textdatei auslesen
- Buchstabenanzahl (einmal absolut und einmal relativ in %; der relative wert soll pro 1% ein "+" bekommen; zB 4% : ++++ um das anschaulich zu machen)
- Wortanzahl
- Wortlänge -> zB 1 Zeichen, 5 Zeichen, 8 Zeichen.... bis 10 Zeichen
Das alles in einer Datei als Ergebnis ausgeben.
Natürlich habe ich schon angefangen.
Die Datei wurde schon eingelesen anhand eines Pointers. Die Buchstabenanzahl habe ich mit dem Zähler gesamt bekommen, die einzelnen Buchstaben durch die if Schleifen. Da habe ich im Endeffekt 52 if Schleifen
für groß und Kleinschreibung. Geht das auch eleganter?
while ( (c = fgetc(fp) ) !=EOF)
{ gesamt++;
if (c == 'A') // Hier wird die Variable c mit 'A' definiert
{
zaehlerA ++; // für jedes 'A' wird der zaehler um 1 erhöt
}
if (c == 'a') // Hier wird die Variable c mit 'a' definiert
{
zaehlera ++; // für jedes 'a' wird der zaehler um 1 erhöt
}
Die relative Anzahl eines Buchstabens habe ich auch schon. Jetzt weiss ich nicht, wie ich die "+" als Index anzeigen lasse
Soweit bin ich nun; ich kann auch alles schön in einer Datei ausgeben lassen, bis auf die "+" eben.
Beim Wörterzählen hänge ich nun.
Jedes einzelne Wort ist durch ein Whitespace getrennt. Ansich würde ich das wieder mit der "if" Anweisung
if (c == ' ')
{
wortanzahl ++;
}
machen, aber dann zählt er ja alle leerzeichen, auch 2 hintereinander?!
Und wie ich die Wortlänge "rausfiltern" kann, versteh ich nicht.
Ich such mir sowohl im Internet wie auch in meinem Super c Buch den Ast ab, aber finde nix :/
Die Suche hier hab ich auch bemüht...
Ich hoffe, mir kann da jemand helfen
Danke schonmal
Hallo!
Vorab: Ich bin absoluter Programmier Newbie und habe mich nun die letzten 3 Tage etwas mit C beschäftigt.
Es geht um folgen Übung:
Textdatei auslesen
- Buchstabenanzahl (einmal absolut und einmal relativ in %; der relative wert soll pro 1% ein "+" bekommen; zB 4% : ++++ um das anschaulich zu machen)
- Wortanzahl
- Wortlänge -> zB 1 Zeichen, 5 Zeichen, 8 Zeichen.... bis 10 Zeichen
Das alles in einer Datei als Ergebnis ausgeben.
Natürlich habe ich schon angefangen.
Die Datei wurde schon eingelesen anhand eines Pointers. Die Buchstabenanzahl habe ich mit dem Zähler gesamt bekommen, die einzelnen Buchstaben durch die if Schleifen. Da habe ich im Endeffekt 52 if Schleifen

while ( (c = fgetc(fp) ) !=EOF)
{ gesamt++;
if (c == 'A') // Hier wird die Variable c mit 'A' definiert
{
zaehlerA ++; // für jedes 'A' wird der zaehler um 1 erhöt
}
if (c == 'a') // Hier wird die Variable c mit 'a' definiert
{
zaehlera ++; // für jedes 'a' wird der zaehler um 1 erhöt
}
Die relative Anzahl eines Buchstabens habe ich auch schon. Jetzt weiss ich nicht, wie ich die "+" als Index anzeigen lasse
Soweit bin ich nun; ich kann auch alles schön in einer Datei ausgeben lassen, bis auf die "+" eben.
Beim Wörterzählen hänge ich nun.
Jedes einzelne Wort ist durch ein Whitespace getrennt. Ansich würde ich das wieder mit der "if" Anweisung
if (c == ' ')
{
wortanzahl ++;
}
machen, aber dann zählt er ja alle leerzeichen, auch 2 hintereinander?!
Und wie ich die Wortlänge "rausfiltern" kann, versteh ich nicht.
Ich such mir sowohl im Internet wie auch in meinem Super c Buch den Ast ab, aber finde nix :/
Die Suche hier hab ich auch bemüht...
Ich hoffe, mir kann da jemand helfen

Danke schonmal
Zuletzt bearbeitet: