Edellisistä aliohjelmista suurin osa on toteutettu myös käsittelemään C++ - merkkijonoja:
/****************************************************************************/ /* 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 ** erota - laittaa merkkijonon kahtia valitun merkin ** kohdalta ** erota - laittaa merkkijonon kahtia ensimmäisen ** valitun merkin kohdalta