Haba ng String sa C Wika

String Length C Language



Ang isang string sa C wika ay isang hanay ng mga character na winakasan ng isang null character ( 0). Ang haba ng string ay ang bilang ng mga character sa isang string. Sa haba ng string na ' 0,' ang isang character ay hindi binibilang.







Sa halimbawang ipinakita sa itaas, ang haba ng string p ay 6.



Sa tutorial na ito, una, ipapakita namin kung paano gamitin ang a tinukoy ng gumagamit ang pagpapaandar upang makalkula ang haba ng isang string, at pagkatapos ay ipapakita namin sa iyo ang isang built-in na pagpapaandar ng library strlen () . Ipinapakita rin namin sa iyo ang mga gamit ng sukat ng operator para sa string literals.



Haba ng String Gamit ang Tinukoy na Pag-andar ng User

Maaari kang magsulat ng isang function na tinukoy ng gumagamit na nagbabalik ng bilang ng mga character sa isang string.





//Example1.c
# isama

inthaba ng string(char *p)
{
intako=0;

habang(p[ako] ! = ' 0')ako++;

bumalik kaako;
}

intpangunahing()
{
charp[30]= 'STRING';

printf ('Ang haba ng string str ay =>% d n',haba ng string(p));

bumalik ka 0;
}

Dito, inuulit namin ang habang loop mula sa ako = 0 hanggang sa hindi natin makasalubong ang ‘ 0’ tauhan Ang halaga ng ako ay nadagdagan ng 1 sa bawat pag-ulit ng loop habang. Kapag natapos ang loop, ang halaga ng ako ay ang haba ng string.



Haba ng String Gamit ang Built-In na Pag-andar ng Library

Ang built-in na pagpapaandar ng library strlen () Maaari ring gamitin upang matukoy ang haba ng string.

pagpapaandar ng strlen ():

Header file:

lubidh

Syntax:

size_t strlen (Const char *p)

Argumento: Ang pagpapaandar na ito ay tumatagal ng isang argument ng uri ng pointer sa char.

Halaga ng pagbalik: Ibinabalik ng pagpapaandar na ito ang haba ng string p . Tandaan na size_t ay isang alyas lamang ng isang unsigned integer.

//Example2.c
# isama
# isama

intpangunahing()
{
charstr1[30]='STRING ARRAY';
char *str2;
char *str3;

str2=str1;
str3= 'STRING POINTER';

printf ('Ang haba ng string str1 ay =>% ld n', strlen (str1));
printf ('Ang haba ng string str2 ay =>% ld n', strlen (str2));
printf ('Ang haba ng string str3 ay =>% ld n', strlen (str3));
printf ('Ang haba ng string'STRING LITERALS'ay =>% ld n', strlen ('STRING LITERALS'));

bumalik ka 0;
}

Dito, ipinapasa namin ang string array, string pointer, at string literal sa pag-andar ng strlen, at ibabalik ng pagpapaandar ang haba ng string.

Haba ng String Gamit ang sukat ng Operator

Maaari din nating gamitin ang sukat ng operator para sa haba ng string (para lamang sa literal na string). Ngunit, kailangan naming bawasan ang 1 mula sa halagang ibinalik ng operator na ito, dahil binibilang din nito ang character na ' 0'. Para sa array at pointer, ibinalik ng sizeof operator ang inilaang laki ng array at ang pointer, ayon sa pagkakabanggit.

//Example3.c
# isama

intpangunahing()
{
charstr1[30] = 'STRING';
char *str2=str1;

printf ('Haba ng 'STRING'ay =>% d n',(sukat ng('STRING') - 1));
printf (Ang inilaang laki ng str1 array ay =>% d n',sukat ng(str1));
printf ('Ang laki ng str2 pointer ay =>% d n',sukat ng(str2));

bumalik ka 0;
}

Dito, sa Line no 9, ipinapasa namin ang string na literal na STRING at nakukuha ang laki, kasama ang character na ' 0'. Kaya, binabawas namin ang 1 at nakukuha ang aktwal na laki ng string.

Kapag naipasa namin ang isang array sa operator ng sukat, ibinalik nito ang inilaan na laki ng array, na 30, at kapag pumasa sa isang character pointer, ibinalik nito ang laki ng pointer.

Konklusyon

Kaya, sa tutorial na ito, ipinakita namin sa iyo kung paano makakalkula ang haba ng string sa iba't ibang mga paraan. Maaari mong gamitin sa iyong code alinman ang pamamaraan na pinakaangkop para sa iyo.