Stīgu garums C valodā

String Length C Language



Virkne C valodā ir rakstzīmju masīvs, kas beidzas ar nulles rakstzīmi ( 0). Virknes garums ir rakstzīmju skaits virknē. Virknes garumā “ 0” rakstzīme netiek skaitīta.







Iepriekš redzamajā piemērā virknes garums lpp ir 6.



Šajā apmācībā, pirmkārt, mēs parādīsim, kā lietot a lietotāja definēta funkcija lai aprēķinātu virknes garumu, un tad mēs jums parādīsim iebūvēto bibliotēkas funkciju strlen () . Mēs arī parādīsim izmērs virkņu literālu operators.



Virknes garums, izmantojot lietotāja definētu funkciju

Varat uzrakstīt lietotāja definētu funkciju, kas atgriež virknes rakstzīmju skaitu.





//Piemērs1.c
#iekļaut

intstringLength(char *lpp)
{
inti=0;

kamēr(lpp[i] ! = ' 0')i++;

atgrieztiesi;
}

intgalvenais()
{
charlpp[30]= “STRING”;

printf ('Virknes str garums ir => %d n',stringLength(lpp));

atgriezties 0;
}

Šeit mēs atkārtojam cikla cilpu no i = 0 līdz mēs nesaskaramies ar ' 0' raksturs. Vērtība i tiek palielināts par 1 katrā cikla atkārtojuma iterācijā. Kad cikls beidzas, vērtība i ir virknes garums.



Stīgu garums, izmantojot iebūvēto bibliotēkas funkciju

Iebūvētā bibliotēkas funkcija strlen () var izmantot arī, lai noteiktu virknes garumu.

funkcija strlen ():

Galvenes fails:

virkne.h

Sintakse:

size_t strlen (konst char *lpp)

Arguments: Šī funkcija pārvērš tipa rādītāja argumentu uz char.

Atgriešanās vērtība: Šī funkcija atgriež virknes garumu lpp . Pieraksti to size_t ir tikai neparakstīta vesela skaitļa aizstājvārds.

//Piemērs2.c
#iekļaut
#iekļaut

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

str2=str1;
str3= “STRING POINTER”;

printf ('Virknes str1 garums ir => %ld n', strlen (str1));
printf ('Virknes str2 garums ir => %ld n', strlen (str2));
printf ('Virknes str3 garums ir => %ld n', strlen (str3));
printf ('Virknes garums'Stīgu LITERĀLI'ir => %ld n', strlen ('STRING LITERALS'));

atgriezties 0;
}

Šeit mēs nododam virknei masīvu, virknes rādītāju un virknes literālu funkcijai strlen, un funkcija atgriež virknes garumu.

Virknes garums, izmantojot operatora izmēru

Mēs varam arī izmantot izmērs virknes garuma operators (tikai virkņu literālam). Bet no šī operatora atgrieztās vērtības mums ir jāatņem 1, jo tajā tiek skaitīta arī rakstzīme “ 0”. Masīvam un rādītājam operators sizeof atgriež attiecīgi piešķirto masīva un rādītāja lielumu.

//Piemērs3.c
#iekļaut

intgalvenais()
{
charstr1[30] = “STRING”;
char *str2=str1;

printf ('Garums'STRING'ir => %d n',(izmērs(“STRING”) - 1));
printf ('Piešķirtais str1 masīva izmērs ir => %d n',izmērs(str1));
printf ('Str2 rādītāja izmērs ir => %d n',izmērs(str2));

atgriezties 0;
}

Šeit, 9. rindā, mēs nododam virkni burtiski STRING un iegūstam izmēru, ieskaitot rakstzīmi “ 0”. Tātad, mēs atņemam 1 un iegūstam faktisko virknes lielumu.

Kad mēs nododam masīvu operatoram sizeof, tas atgriež piešķirto masīva lielumu, kas ir 30, un, nododot rakstzīmju rādītāju, tas atgriež rādītāja lielumu.

Secinājums

Tātad, šajā apmācībā mēs parādījām, kā virknes garumu var aprēķināt dažādos veidos. Kodā varat izmantot to, kura metode jums ir vispiemērotākā.