13.5.2 Aliohjelmia C++ - merkkijonojen käsittelyyn
Edellisistä aliohjelmista suurin osa on toteutettu myös
käsittelemään C++ - merkkijonoja:
ali\mjonotpp.h - aliohjelmia C++ -merkkijonojen käsittelyyn
/****************************************************************************/
/* M J O N O T P P. H
**
**
** Tiedostossa on merkkien ja merkkijonojen käsittelyohjelmien yleiset
** aliohjelmien otsikot. Tiedosto on lähinnä muunnostiedosto string-
** tyypille vastaavasta C-kirjastosta mjonot.c
**
** Tekijät: Vesa Lappalainen
** Tehty: 02.01.1996
** Muutettu 07.03.1996/vl
** Mitä muutettu: lue_jono_oletus laitettu toimimaan
**
** Tiedostossa on seuraavia aliohjelmia:
** remove(st) - poistaa tiedoston st
** onko_tiedostoa(st) - palauttaa 1 jos on tiedosto nimellä st
** rename(&vanha,&uusi) - vaihtaa tiedoston nimen
** tarkennin_alku(&tied) - palauttaa mistä kohti tarkennin alkaa
** tiedoston nimessä
** poista_tarkennin(tied) - poistaa tarkentimen tiedostonnimestä
** laita_tarkennin(tied,tark) - laittaa tiedoston nimen tarkentimen
** vaihda_tarkennin(tied,tark)- vaihtaa tiedoston nimen tarkentimen
**
** istream &lue_rivi(istream &is,char *s,int max_koko);
** istream &lue_rivi(istream &is,string &s);
** istream &lue_rivi(istream &is,int &i,int def=0);
**
** Seuraavat ovat mjonot.c:n muunnoksia string-luokalle
** (- merk ei totetuttu erikseen string-luokalle
** tai ei tarvitse toteuttaa)
**
** 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
** - 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
** 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"
** 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
** muunna_C_symbolit - muuttaa \t, \n ja \0x61 muotoiset
** C-symbolit vastaaviksi merkeiksi
*/