previous next Up Title Contents Index

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                   
	*/

Tehtävä 13.125 Merkkijonojen käsittely

Valitse muutamia aliohjelmia mjonot.c aliohjelmakirjastosta ja yritä itse toteuttaa ne.


previous next Up Title Contents Index