C-ohjelmointi kevät 2006
Harjoitus
5
Tehtävät käsitellään
keskiviikon 22.3.2006 harjoitustilaisuuksissa 12-14 salissa C221
ja 14-16 salissa B221.
Vain tietokoneella koetellut
ratkaisut kelpaavat! Kun pyydetään tekemään
funktio, niin laadi myös pääohjelma, jolla
testaat funktion toimintaa.
Kirjoita funktio, joka etsii merkkijonosta tiettyä merkkiä. Funktiolle annetaan parametreina merkkijono ja merkki. Funktio palauttaa arvonaan osoittimen merkkijonon ensimmäiseen sellaiseen merkkiin, jota etsitään. Ellei etsittävää merkkiä löydy, funktio palauttaa arvon NULL. Kirjoita funktiolle myös käyttöympäristö eli pääohjelma, josta kutsut sitä.
Kirjoita funktio void fill (char *p, int n, char pat), joka alustaa muistia seuraavasti: se täyttää osoitteesta p alkaen n muistitavua merkin pat arvolla.
Tee ohjelma etsi, joka saa komentoriviparametrina tiedoston nimen ja merkkijonon (etsi tied1 C-kieli). Ohjelma tulostaa kaikki ne tiedoston rivit, joilla annettu merkkijono esiintyy.
Laadi ohjelma, jolle komentoriviparametreina voidaan antaa joko pelkkä tiedoston nimi (program file1) tai tiedoston nimi ja tulostettavien rivien lukumäärä (program file1 –d). Jos komentorivillä on vain tiedoston nimi, niin tiedostosta tulostetaan 20 ensimmäistä riviä näytölle, muuten tulostetaan d ensimmäistä riviä. Esimerkiksi program aputied -10 tulostaa tiedoston aputied 10 ensimmäistä riviä. Jos tiedostossa on vähemmän rivejä, niin tulostetaan niin monta riviä kuin on mahdollista. Varaudu myös erilaisiin virhetilanteisiiin.