13.5.1 Aliohjelmia C- merkkijonojen käsittelyyn
Seuraavassa on joukko aliohjelmia merkkijonojen lukemiseen ja käsittelyyn.
Niistä tehokkaimmalla - lue_jono_oletus - voidaan tulostaa
näyttöön samalla hoput- teksti ja mikäli kysymykseen
vastataan pelkkä [RET], käytetään oletusarvoa.
Tämä aliohjelma on suunniteltu nimenomaan toimimaan kerhon
jäsenrekisterin tarpeiden mukaisesti.
ali\mjonot.c - aliohjelmia merkkijonojen käsittelyyn
/****************************************************************************/
/*
** M J O N O T . C
**
** Yleisiä merkkijonojen käsittelyyn liittyviä aliohjelmia.
**
** Aliohjelmat:
** tee_jono - luo uuden merkkijonon jonne jono kopioidaan
** kopioi_jono - kopioi kork. annetun määrän merkkejä
** liita_jono - liittää jonon toisen perään, tulos
** korkeintaan max.pituus mittainen
** f_lue_jono - lukee tiedostosta merkkijonon
** alusta_lue_jono - alustaa merkkijonon lukemisen
** lue_jono - lukee päätteeltä merkkijonon
** lue_jono_oletus - lukee päätteeltä merkkijonon.
** Näyttöön tulostetaan haluttu viesti ja
** jonon oletusarvo, mikäli painetaan RET
** lue_kokluku_oletus - luetaan kokonaisluku, jolle käytetään
** oletusarvoa mikäli heti painetaan RET
** poista_alkutyhjat - poistaa merkkijonon alussa olevat välilyönnit
** poista_lopputyhjat - poistaa merkkijonon lopussa olevat välil.
** poista_2_tyhjat - muuttaa merkkijonossa kaikki peräkkäiset
** välilyönnit yhdeksi välilyönniksi
** poista_tyhjat - poistaa alusta ja lopusta kaikki sekä
** muualta moninkertaiset välilyönnit
** poista_alku_ja_2_tyhjat- poistaa alusta ja 2x tyhjät
** isoksi - muuttaa kirjaimen isoksi kirjaimeksi huomioiden
** skandit
** pieneksi - muuttaa pieneksi huomioiden skandit
** jono_isoksi - muuttaa jonon kaikki merkit isoiksi
** jono_pieneksi - muuttaa jonon kaikki merkit pieniksi
** jono_alku_isoksi - muuttaa jonon kaikki sanojen alut isoiksi
** ja kaikki muut pieniksi
** jono_1_isoksi - muuttaa jonon 1. kirjaimen isoksi
** wildmat - vertaa onko sana == maski, missä maskissa
** voi olla jokeri-merkkejä (* tai ?)
** onko_samat - ensin muutetaan jonot isoiksi ja poistetaan
** tyhjät ja sitten wildmat
** (eli " Kalle " == " k* ")
** palanen - ottaa merkkijonosta seuraavan erotinmerkkien
** määräämän palasen
** laske_merkit - laskee annettujen merkkien esiintymismäärän
** merkkijonossa
** paikka - palauttaa kirjaimen 1. indeksin merkkijonossa
** tayta_valit - täyttää syötön "A-F" muotoon "ABCDEF"
** joku_jono - vastaa kysymykseen onko "EY" joku jonoista
** "EU|EY|EL"
** joku_jono_func - kuten edellä, mutta vertailufunktio voidaan
** antaa itse, esim
** joku_jono("EU","E?|USA",wildmat) => 1
** jono_arvosanaksi - muuttaa merkkijonon "7-" reaaliluvuksi 6.75
** arvosana_jonoksi - muuttaa reaaliluvun 6.75 merkkijonoki "7-"
** sallituissa - paluttaa -1 jos tutkittavan jonon kaikki
** merkit ovat annetussa joukossa, muuten
** 1. väärän merkin indeksin
** poista_merkit - poistaa jonosta kaikki valitut merkit
** poista_alusta - poistaa merkkejä jonon alusta
** lisaa_alkuun - lisää merkkejä jonon alkuun
** lisaa_merkki - lisää merkin merkkijonon valittuun kohtaan
** vaihda_jonot - vaihtaa jonossa merkit toisiksi
** ^ - rivin alussa tarkoittaa, etta
** vaihto tehdaan vain rivin alusta
** vaihda_merkit - vaihtaa jonossa yksittäiset merkit
** toisiksi
** muunna_C_symbolit - muuttaa \t, \n ja \0x61 muotoiset
** C-symbolit vastaaviksi merkeiksi
** jonossa_vain_merkit - poistaa jonosta kaikki ne merkit, jotka
** eivät ole valitussa joukossa
*/
- Valitse muutamia aliohjelmia mjonot.c aliohjelmakirjastosta ja
yritä itse toteuttaa ne.