C-Kurs/Buchstaben zählen: Unterschied zwischen den Versionen
(Hinweise hinzu) |
(Aufgabenstellung präzisiert und Zusatzaufgabe) |
||
Zeile 1: | Zeile 1: | ||
== Aufgabenstellung == | == Aufgabenstellung == | ||
− | Schreibe ein Programm, das die Vorkommnisse aller Buchstaben in einer Datei zählt und anschließend ausgibt. Verwende die folgende Vorgabe: | + | Schreibe ein Programm, das die Vorkommnisse aller Buchstaben in einer Datei zählt und anschließend ausgibt. Dabei sollen Groß- und Kleinbuchstaben zusammengefasst werden. Verwende die folgende Vorgabe: |
#include <stdio.h> | #include <stdio.h> | ||
Zeile 33: | Zeile 33: | ||
== Hinweis zum Umgang mit chars == | == Hinweis zum Umgang mit chars == | ||
Mit <tt>char</tt> kann man genauso rechnen, wie mit <tt>int</tt>. Die Berechnung <tt>character-'a'</tt> ergibt also die Position des Buchstaben im Alphabet, wenn <tt>character</tt> zwischen <tt>a</tt> und <tt>z</tt> in der [http://de.wikipedia.org/wiki/ASCII-Tabelle ASCII-Tabelle] liegt. | Mit <tt>char</tt> kann man genauso rechnen, wie mit <tt>int</tt>. Die Berechnung <tt>character-'a'</tt> ergibt also die Position des Buchstaben im Alphabet, wenn <tt>character</tt> zwischen <tt>a</tt> und <tt>z</tt> in der [http://de.wikipedia.org/wiki/ASCII-Tabelle ASCII-Tabelle] liegt. | ||
+ | |||
+ | == Zusatzaufgabe == | ||
+ | Verschönere die Ausgabe so, dass für jede Buchstabenhäufigkeit eine visuelle Ausgabe (z.B. in Form eines Balkens aus <tt>#</tt>) angezeigt wird, die den relativen Anteil des Buchstabens darstellt. | ||
== Kommentare == | == Kommentare == |
Version vom 13. September 2010, 11:27 Uhr
Inhaltsverzeichnis
Aufgabenstellung
Schreibe ein Programm, das die Vorkommnisse aller Buchstaben in einer Datei zählt und anschließend ausgibt. Dabei sollen Groß- und Kleinbuchstaben zusammengefasst werden. Verwende die folgende Vorgabe:
#include <stdio.h> #include <stdlib.h> int main(int argc, char **argv) { if (argc != 2) { printf("missing filename\n"); return 0; } // open file FILE *file = fopen(argv[1], "r"); if (file == NULL) { printf("cannot open file\n"); return 0; } // TODO your code here // close the file fclose(file); }
Hinweis zum Dateienlesen
Für diese Aufgabe werden folgende File-IO-Funktionen benötigt. Die ersten beiden sind in der Vorgabe schon vorhanden.
- fopen(filename, "r") öffnet die Datei unter dem angegebenen Dateinamen im Nur-Lese-Modus und gibt einen FILE-Pointer zurück, mit dem im Folgenden auf die Datei zugegriffen werden kann.
- fclose(file) schließt die Datei.
- fgetc(file) liest ein Zeichen der Datei. Ist die Datei zuende, gibt die Funktion -1 zurück.
Hinweis zum Umgang mit chars
Mit char kann man genauso rechnen, wie mit int. Die Berechnung character-'a' ergibt also die Position des Buchstaben im Alphabet, wenn character zwischen a und z in der ASCII-Tabelle liegt.
Zusatzaufgabe
Verschönere die Ausgabe so, dass für jede Buchstabenhäufigkeit eine visuelle Ausgabe (z.B. in Form eines Balkens aus #) angezeigt wird, die den relativen Anteil des Buchstabens darstellt.
Kommentare
Wenn du Anmerkungen zur Aufgabe hast oder Lob und Kritik loswerden möchtest, ist hier die richtige Stelle dafür. Klicke einfach ganz rechts auf "bearbeiten" und schreibe deinen Kommentar direkt ins Wiki. Keine Scheu, es geht nichts kaputt ;)