#include #include void bedingte_ausgabe(int bedingung, int zahl) { if (bedingung) printf("%6d ", zahl); } int main(int argc, char *argv[]) { int zeichen = 0, woerter = 0, zeilen = 0; int gib_zeichen = 0, gib_woerter = 0, gib_zeilen = 0; int next, i; if (argc >= 2) { switch(argv[1][0]) { case 'w': gib_woerter = 1; break; case 'l': gib_zeilen = 1; break; case 'c': gib_zeichen = 1; break; default: printf("Fehler!\n"); return 1; } } else { gib_woerter = gib_zeilen = gib_zeichen = 1; } next = getchar(); while (next != EOF) { if (next == '\n' || next == '\f') zeilen++; if (isspace(next)) woerter++; zeichen++; next = getchar(); } bedingte_ausgabe(gib_zeichen, zeichen); bedingte_ausgabe(gib_woerter, woerter); bedingte_ausgabe(gib_zeilen, zeilen); printf("\n"); ende: return 0; }