File: Stare vježbe/vjezbe04/28__broj_znakova.c
/* 28__broj_znakova.c ----- Program ucitava sa tipkovnice znak po znak, sve dok se ne ucita znak za kraj file-a (EOF). Pri tome broji koliko je ukupno znakova, rijeci i linija ucitano. */ #include <stdio.h> #define UNUTAR_RIJECI 1 #define IZVAN_RIJECI 0 int main () { char ch; int i, status; int broj_linija, broj_rijeci, broj_znakova, broj_znamenki[10]={0}; /* varijabla status nam govori da li se trenutno nalazimo unutar neke rijeci ili ne */ status=IZVAN_RIJECI; broj_linija=broj_rijeci=broj_znakova=0; /* ucitavamo znakove sve do ne naidjemo na znak za kraj file-a */ /* (EOF, tj. Ctrl+D pod UNIX-om, Ctrl+Z pod DOS-om) */ /* ch=getchar() --> ucitava 1 znak sa tipkovnice */ /* (ekviv. sa scanf ("%c", &ch)) */ /* putchar (ch) --> ispisuje znak ch na ekran */ /* (ekviv. sa printf ("%c", ch)) */ while ((ch=getchar()) != EOF) { broj_znakova++; if (ch >= '0' && ch <= '9') broj_znamenki[ch-'0']++; if (ch == '\n') broj_linija++; if (ch == ' ' || ch == '\n' || ch == '\t') status = IZVAN_RIJECI; else if (status == IZVAN_RIJECI) { status = UNUTAR_RIJECI; broj_rijeci++; } } printf ("\nBroj pojavljivanja pojedinih znamenki:\n"); for (i= 0; i< 10; ++i ) printf ("%d[%d] ", broj_znamenki [i ], i ); printf("\n\nBroj linija: %d, broj rijeci: %d, broj znakova: %d\n", broj_linija, broj_rijeci, broj_znakova); return 0; }
|