[ lancha131 @ 24.12.2010. 17:43 ] @
Ekipa poz svima...imam jednu nedoumicu kako se barata sa ucitavanjem podataka U c iz datoteka....treba da napisem program koji ce mi prebrojati koliko ima reci u datoteci...datoteka se naravno nalazi kao txt fajl ....e sad.....kriterijum prekida jedne reci,a pocetka druge je sledeci...reci se sastoje samo od velikih i malih slova i brojeva,sve ostalo se racuna kao prekid....malo me buni kako bi ucitao sve,ako je npr u datoteci stih neke pesme,dakle ima novih redova....moze li neki dobar kod,pls :D
[ enaB @ 25.12.2010. 09:10 ] @
Možeš sa funkcijom fgetc() da uzimaš karakter po karakter i proveravaš da li je slovo ili broj, pa ako nije onda je prekid tj. uvecavas broj reci. Proveravanje može sa funkcijom isalnum() (ako ste je učili, da ne bude sumnjivo :))

Code:
if(!isalnum(c))


ili recimo ovako

Code:
if(!(c>='0' && c<='9') && !(c>='a' && c<='z') && !(c>='A' && c<='Z'))

ili
Code:
if((c<'0' || c>'9') && (c<'a' || c>'z') && (c<'A' || c>'Z'))
[ lancha131 @ 27.12.2010. 17:44 ] @
hm..ovaj isalnum je interesantna stvar,nazalost ,slabo se sta radi na casu,tako da se podrazumeva da sam malo cackam po literaturi ,pa nadjem neku korisnu funkciju...to je ok
samo ovakav algoritam ce biti problem....prosto ako posle jednog blanka ne naidje alfanum karakter nego jos jedan blanko,on ce opet uvecati brojac reci...to razmisljam sad kako da izolujem....inace za ovakvu varijaNTU sam se opredelio
while ((c = fgetc(pf)) != EOF) //za ucitavanje iz datoteke se kkoristim fgetc.....
if (!isalnum(c)) reci++
[ enaB @ 29.12.2010. 15:18 ] @
Hm, da. Možda da ubaciš neki indikator koji se "setuje" na prekid a resetuje i inkrementira broj reči na prvi alfanum posle prekida. Ovako nešto


Code:
char ind=1;
while ((c = fgetc(pf)) != EOF) {
    if(ind && isalnum(c)) {
          reci++;
          ind=0;
    }
    if(!isalnum(c))
         ind=1;
}