Stygos ilgis C kalba

String Length C Language



C kalbos eilutė yra simbolių masyvas, kuris baigiamas nuliniu simboliu ( 0). Eilutės ilgis yra simbolių skaičius eilutėje. Eilutės ilgyje „ 0“ simbolis neskaičiuojamas.







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ė.h

Sintaksė:

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ą.