/****************************************************************************/ /* M J O N O T . H Tiedostossa on merkkien ja merkkijonojen k„sittelyohjelmien yleiset vakiot makrot globaalit vakiotyyliset muuttujat aliohjelmien otsikot Tekij„t: Vesa Lappalainen Tehty: 13.11.1991 Muutettu: Mit„ muutettu: */ /****************************************************************************/ /* V a k i o t */ /* Vakiot sy”t”n onnistumiselle */ #define SYOTTO_OK 2 #define EI_MAHDU 1 #define OLETUS 0 #define TIEDOSTO_LOPPU -1 #define VIRHE_SYOTOSSA -2 /****************************************************************************/ /* M a k r o t */ #define J_N_S(nimi) (nimi),(sizeof(nimi)) #define P_N_S(nimi) (nimi),(sizeof(nimi)) #define O_N_S(nimi) (nimi),(sizeof(nimi)) /* Makro J_N_S tuottaa joukkue muuttujan, makro P_N_S tuottaa pelaaja muuttujan ja makro O_N_S tuottaa ottelu muuttujan nimen ja koon, toisistaan erotettuna. Sopii k„ytett„v„ksi esim sellaisten aliohjelmien kutsujen yhteydess„ jossa tarvitaan per„kk„in muuttujan nimi ja koko. Mik„li muuttuja on osoite esim. char p*; p = malloc(50); k„y huonosti, sill„ makro palauttaa muistimallista riippuen joko p,2 tai p,4 Sen sijaan m„„rittely char jono[30]; palauttaa jono,30 kuten pit„„kin! Esim. kopioi_jono(N_S(jono),"Kissa"); liita_jono(N_S(jono)," istuu!"); ----------------------------------------------------------------------------*/ /****************************************************************************/ /****************************************************************************/ /* G l o b a a l i t (vakio)muuttujat */ extern char *VALIMERKIT; /* Merkit joiden j„lkeen alkaa uusi sana. */ /****************************************************************************/ /* A L I O H J E L M A T */ /* Tiedostossa on seuraavia aliohjelmia: 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 korkeintaa max.pituus mittainen f_lue_jono - lukee tiedostosta merkkijonon 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 Ankka Aku|12234-34|... 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„ */ char *tee_jono(char *); int kopioi_jono(char *, int, char *); int liita_jono(char *, int, char *); int f_lue_jono(FILE *, char *, int); int lue_jono(char *, int); int lue_jono_oletus(char *, int, int, char *, char *, int); int lue_kokluku_oletus(int, int *); char *poista_alkutyhjat(char *); char *poista_lopputyhjat(char *); char *poista_2_tyhjat(char *); char *poista_tyhjat(char *); char isoksi(char); char pieneksi(char); char *jono_pieneksi(char *); char *jono_isoksi(char *); char *jono_alku_isoksi(char *); int wildmat(register char *, register char *);