C programavimo kalboje yra sukurta daug funkcijų, kurios lengvina (dažnu atveju) programuotojų gyvenimus ir
padeda sutaupyti laiko. Viena tokių funkcijų, kuri yra aprašyta standartinėje C kalbos bibliotekoje, yra
toupper. Šią funkciją ir aptarsime šiame straipsnyje, kuris yra
padalintas į tris dalis:
Grąžinama reikšmė: nepakitusi gauto c kintamojo reikšmė arba gautos reikšmės ir 32 skirtumas (c - 32).
Parametrų sąrašas: (int
c) - sveikasis skaičius, kuris yra tikrinamas. Nuo šio skaičiaus priklauso galutinis
rezultatas
Antraščių failas:<ctype.h>.
1. Funkcija toupper. Kas tai?
Funkcija toupper C progamavimo kalboje yra naudinga, kai mes
norime mažąją raidę pakeisti didžiąja raide. Taigi jeigu iškviečiame šią funkciją ir perduodame jai
mažąją raidę, tada ši funkcija mums gražina šios raidės didžiąją versiją (jeigu perduodame 'a', tada
yra gražinama 'A').
Šioje vietoje gali kilti klausimas. Kodėl mes perduodame raides toupper funkcijai, jeigu šios funkcijos
prototipe yra priimama sveikojo skaičiaus (int) reikšmė? Atsakymas gana paprastas - kiekviena
raidė C programavimos kalboje turi savo sveikojo skaičiaus atitikmenį. Raidė 'a' atitinka reikšmę 97,
raidė 'b' - 98 ir taip toliau.
Didžiųjų raidžių sveikųjų skaičių reikšmės yra 32 vienetais mažesnės nei jų mažųjų raidžių atitikmenų.
Raidė 'A' atitinka reikšmę 65, o C kalboje tai yra raidės 'a' ir 32 skirtumas.
Žemiau galite matyti toupper funkcijos naudojimo pavyzdį.
1 pavyzdys: kaip atspausdinamas angliška didžiųjų raidžių abecelė naudojant ir toupper
funkciją.
#include <stdio.h>
#include <ctype.h>
intmain()
{
printf("Abecelė: ");
for(inti = 'a'; i <= 'z'; i++)
{
printf("%c", toupper(i));
}
return0;
}
Galimas rezultatas:
Abecelė: ABCDEFGHIJKLMNOPQRSTUVWXYZ
2. Perrašyta toupper funkcija
Pirmoje dalyje išmokome, jog toupper funkcija gražina didžiąją
raidę, jeigu jai perduodame mažąją. O tai yra pasiekiama atimant 32 iš gautos reikšmės. Todėl norėdami
tiksliai perrašyti šią funkciją turime patikrinti, ar gauta sveikojo skaičiaus reikšmė yra mažosios
raidės atitikmuo ir, tokiu atveju, atimti 32 bei grąžinti skirtumą. Tam, jog šitai suprastumėte geriau,
pažvelkite į antrą pavyzdį.
2 pavyzdys: C kalba perrašyta toupper funkcija.
intnauja_toupper ( int c)
{
if(c >= 'a' && c <= 'z' )
return(c - 32);
return(c);
}
2-ame pavyzdyje, trečioje eilutėje galime matyti
sąlyginį sakinį. Šio sakinio sąlyga žmonių kalba galėtų skambėti taip, "ar gauta c reikšmė yra nuo 97 iki
122" (nuo a iki z). Jeigu taip, iš šios reikšmės atimame 32 ir grąžiname skirtumą (4
eilutė). Kitu atveju gražiname nepakeistą reikšmę (5 eilutė). Galbūt gauta reikšmė jau
buvo didžioji raidė, o galbūt tai buvo taškas.
3. Žinių patikrinimas
Funkcija toupper C programavimo kalboje
1Ko
niekada neatlieka toupper funkcija?
2Kuris iš pateiktų intervalų atitinką anglišką mažųjų raidžių
abėcėlę?
3Kokia yra funkcijos toupper(102) grįžtamoji reikšmė?