Aukščiau pateiktame pavyzdyje eilutės ilgis p yra 6.
Šioje pamokoje pirmiausia parodysime, kaip naudotis a vartotojo apibrėžta funkcija Norėdami apskaičiuoti eilutės ilgį, tada parodysime įmontuotą bibliotekos funkciją strlenas () . Mes taip pat parodysime, kaip naudoti dydis eilutės literalų operatorius.
Eilutės ilgis naudojant vartotojo apibrėžtą funkciją
Galite parašyti vartotojo apibrėžtą funkciją, kuri grąžina simbolių skaičių eilutėje.
//Pavyzdys1.c
#įtraukti
tarptstringLength(anglis *p)
{
tarpti=0;
tuo tarpu(p[i] ! = ' 0')i++;
grįžtii;
}
tarptpagrindinis()
{
anglisp[30]= „STRING“;
printf ('Eilutės eilutės ilgis => %d n',stringLength(p));
grįžti 0;
}
Čia mes kartojame ciklo iš i = 0 kol nesusidursime su „ 0“ charakteris. Vertė i yra padidintas 1 kiekvienoje ciklo iteracijoje. Kai ciklas baigiasi, reikšmė i yra eilutės ilgis.
Eilutės ilgis naudojant įmontuotą bibliotekos funkciją
Integruota bibliotekos funkcija strlenas () taip pat gali būti naudojamas eilutės ilgiui nustatyti.
funkcija strlen ():
Antraštės failas:
eilutė.hSintaksė:
dydis_t strlenas (konst anglis *p)Argumentas: Ši funkcija perima tipo žymeklio argumentą į char.
Grąžinimo vertė: Ši funkcija grąžina eilutės ilgį p . Prisimink tai dydis_t yra tik nepasirašyto sveiko skaičiaus slapyvardis.
//Pavyzdys2.c#įtraukti
#įtraukti
tarptpagrindinis()
{
anglisstr1[30]=„STRING ARRAY“;
anglis *str2;
anglis *str3;
str2=str1;
str3= „STRING POINTER“;
printf ('Eilutės str1 ilgis => %ld n', strlenas (str1));
printf ('Eilutės str2 ilgis => %ld n', strlenas (str2));
printf ('Eilutės str3 ilgis => %ld n', strlenas (str3));
printf („Eilutės ilgis“STRING LITERALS'is => %ld n', strlenas („STRING LITERALS“));
grįžti 0;
}
Čia mes perduodame strleno masyvą, eilutės žymeklį ir literalą funkcijai strlen, o funkcija grąžina eilutės ilgį.
Eilutės ilgis naudojant operatoriaus dydį
Taip pat galime naudoti dydis eilutės ilgio operatorius (tik literal). Tačiau iš šio operatoriaus grąžintos vertės turime atimti 1, nes jis taip pat skaičiuoja simbolį „ 0“. Masyvui ir žymekliui operatorius sizeof grąžina atitinkamai priskirtą masyvo ir rodyklės dydį.
//Pavyzdys3.c#įtraukti
tarptpagrindinis()
{
anglisstr1[30] = „STRING“;
anglis *str2=str1;
printf („Ilgis“STRING'yra => %d n',(dydis(„STRING“) - 1));
printf („Paskirtas„ str1 “masyvo dydis yra => %d n',dydis(str1));
printf („Rodyklės str2 dydis yra => %d n',dydis(str2));
grįžti 0;
}
Čia, 9 eilutėje, perduodame tiesioginę eilutę STRING ir gauname dydį, įskaitant simbolį „ 0“. Taigi, atimame 1 ir gauname tikrąjį eilutės dydį.
Kai perduodame masyvą operatoriui sizeof, jis grąžina priskirtą masyvo dydį, kuris yra 30, o perduodamas simbolių žymeklį grąžina rodyklės dydį.
Išvada
Taigi, šioje pamokoje parodėme, kaip eilutės ilgį galima apskaičiuoti įvairiais būdais. Savo kode galite naudoti bet kurį jums tinkamiausią metodą.