#include /****************************************************************************/ char *tayta_valit( /* Palauttaa osoitteen muutettuun mjonoon. */ char *tulos , /* t Muutettu merkkijono */ int max_koko , /* s Tulosjonon maksimikoko */ const char *jono /* s Muutettettava jono */ ) /* ** Funktiolla t„ydennet„„n mjonossa olevat v„lit. ** ** Tekij„: Vesa Lappalainen ** Pvm: 19.3.1992 ** 24.3.1992 lis„tty max_koko parametri/vl ** Esimerkki: jono = "1-5" -> tulos = "12345" ** jono ="-!" -> tulos = " !" ** jono ="K-" -> tulos = "KLMNOPQRSTU..." ** jono "1-4A-D" -> tulos "1234ABCD" ** jono "1--5" -> tulos "15" ** jono "3-1" -> tulos "31" ** Algoritmi: kopioidaan merkki kerrallaan tulosjonoon ** kunnes tulee - ** laitetaan tulosjoon merkit edellinen+1 ... seuraava-1 ** jatketaan alusta kunnes jono loppuu ----------------------------------------------------------------------------*/ { #define ONKO_LOPETUS if (t>loppu) { tulos[loppu]=0; return tulos; } int j=0; int t=0, loppu=max_koko-1; unsigned char edellinen=' '-1; int c,seuraava; do { /* K„yd„„n jonon kaikki merkit l„pi */ if ( jono[j] != '-' ) { tulos[t++] = jono[j]; ONKO_LOPETUS; } else { /* Lis„t„„n v„liss„ olevat merkit */ seuraava = jono[j+1]; if (seuraava==0) seuraava = 256; for (c=edellinen+1; c