/* * lue.c C-ohjelmoinnin harjoitustyö, Launo Tuuri (c) 1997 * ----- * * Tarkoitus: Lue syötteestä rivejä muotoillen ne niin, että * jokaisen sanan edessä on aina vain yksi välilyönti, ja * rivinloppuinen rivinvaihtomerkki on poistettu. Jos luettu * rivi on "epämääräinen", eli sisältää vain välilyöntejä yms. eikä * niiden lisäksi kuin yksiä muuntyyppistä merkkejä, kuten esim. * "----- ---- --", korvaa koko rivi pelkän rivinvaihtomerkin * sisältävällä rivillä. * * Käytetyt globaalit muuttujat: FILE *t - luetaanko syöte stdin:istä * vai tiedostosta * * Funktiot: int luerivi(char* ri, int maxp) * static int ei_tekstirivi(char *rivi) * void sanavalit_kuntoon(char* ri) * * Käytetyt muitten tiedostojen funktiot: - */ #include #include #include #include "ht.h" extern FILE *t; /* * Funktion tarkoitus: Lue syöttestä yksi rivi parametrina annettuun * merkkitaulukkoon. Poista rivin lopusta '\n' * Parametrit: char *ri - osoitin merkkitaulukkoon, int maxp - lue riviltä * merkkejä korkeintaan * Palautus: rivin pituus, tai 0, jos tiedosto loppui. (Tyhjälläkin rivillä * on yksi merkki: rivinvaihtomerkki!) */ int luerivi(char *ri, int maxp) { int c, i; for (i=0; i