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.



  1. 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ä.

  2. 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.

  1. Tee ohjelma etsi, joka saa  komentoriviparametrina tiedoston nimen ja merkkijonon (etsi tied1 C-kieli). Ohjelma tulostaa kaikki ne tiedoston rivit, joilla annettu merkkijono esiintyy.

  2. 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.