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.