C-kieli‎ > ‎

Merkkien ja merkkijonojen käsittelyfunktoita

Yleistä

Merkkijonoille pitää olla varattu riittävästi tilaa, koska ohjelma ei tarkasta mahtuuko kopioitava merkkijono merkkijonomuuttujaan. Merkkijonolle pitää varata merkkien vaatima tila plus yksi ylimääräinen merkki, jotta lopetusmerkki mahtuu mukaan.

getch

getch-funktiolla kysytään näppäimistöltä yksi merkki.
         char Merkki;
       Merkki=getch();
       printf(”merkki on %c ja sen ASCII-arvo on %d”,Merkki,Merkki);

Miksi edellinen tulostuslause toimii, koska kaikki merkit talletetaan merkkejä vastaavina ASCII-arvoina koneen muistiin ja ne voidaan tulostaa em. esimerkin mukaisesti merkkeinä  tai vastaavina ASCII-arvoina.

getch-funktolla saa myös ohjelman toiminnan pysätymään, kunnes käyttäjä painaa jotain näppäintä.

gets

gets-funktiolla kysytään näppäimistöltä merkkijono.
Esim.
         char Merkkeja[100];
       gets(Merkkeja);
       printf(”Kirjoitit %s”,Merkkeja);

gets-funktoissa on se ongelma, ettei se rajaa käyttäjän antamien merkkien määrää ja siten käyttäjä voi ”kaataa” koneen syöttämällä merkkejä muuttujaan enemmän kuin siihen mahtuu.

strcpy


strcpy-funktiolla kopioidaan merkkijonomuuttuja toiseen merkkijonomuuttujaan. Merkkojonolle pitää olla varattu riittävästi tilaa, koska ohjelma ei tarkasta mahtuuko kopioitava merkkijono merkkijonomuuttujaan. Merkkijonolle pitää varata yksi ylimääräinen merkki tilaa, jotta lopetusmerkki mahtuu mukaan.

         char jono1[100];
       char jono2[100] = ”asdfrt” ;
       strcpy(jono1,jono2);

Merkkiono jono2 kopioituu muuttujaan jono1.

strcat


strcat-funktiolla kopioidaan merkkijonomuuttuja toisen merkkijonomuuttujan jatkoksi.

        char jono1[100];
        char jono2[100] = ”asdfrt” ;
        strcpy(jono1,jono2);

Merkkiono jono2 kopioituu muuttujaan jono1 siellä olevan tiedon perään .

strncpy


strncpy-funktiolla kopioidaan merkkijonomuuttujasta määrätty määrä merkkejä toiseen
merkkijonomuuttujaan.
         char jono1[100];
       char jono2[100] = ”asdfrt” ;
       strcpy(jono1,jono2,5);
Merkkijonosta jono2 kopioituu 5 merkkiä muuttujaan jono1 .

strncat


strcat-funktiolla kopioidaan merkkijonomuuttujasta määrätty määrä merkkejä merkkijonomuuttujan jatkoksi.
         char jono1[100];
       char jono2[100] = ”asdfrt” ;
       strncat(jono1,jono2,5);

Merkkijonosta jono2 kopioituu 5 merkkiä muuttujan jono1 siellä olevan tiedon perään.