Dolžina niza v jeziku C.

String Length C Language



Niz v jeziku C je niz znakov, ki je zaključen z ničelnim znakom ( 0). Dolžina niza je število znakov v nizu. V dolžini niza ' 0' se znak ne šteje.







V zgornjem primeru je dolžina niza str je 6.



V tej vadnici bomo najprej pokazali, kako uporabljati a uporabniško določena funkcija za izračun dolžine niza, nato pa vam bomo pokazali vgrajeno funkcijo knjižnice strlen () . Pokažemo vam tudi uporabo velikostof operator za literalne literale.



Dolžina niza z uporabo funkcije, ki jo določi uporabnik

Lahko napišete uporabniško definirano funkcijo, ki vrne število znakov v nizu.





//Primer1.c
#vključi

intstringLength(char *str)
{
intjaz=0;

medtem(str[jaz] ! = ' 0')jaz++;

vrnitevjaz;
}

intglavni()
{
charstr[30]= 'VRVICA';

printf ('Dolžina niza str je => %d n',stringLength(str));

vrnitev 0;
}

Tukaj ponovimo zanko while iz i = 0 dokler ne naletimo na ' 0' karakter. Vrednost jaz se poveča za 1 v vsaki iteraciji zanke while. Ko se zanka konča, se vrednost jaz je dolžina niza.



Dolžina niza z uporabo vgrajene funkcije knjižnice

Vgrajena funkcija knjižnice strlen () lahko uporabite tudi za določanje dolžine niza.

funkcija strlen ():

Datoteka z glavo:

vrvica.h

Sintaksa:

velikost_t strlen (const char *str)

Prepir: Ta funkcija sprejme argument tipa kazalec na char.

Vrnjena vrednost: Ta funkcija vrne dolžino niza str . Upoštevajte, da velikost_t je samo vzdevek nepodpisanega celega števila.

//Primer2.c
#vključi
#vključi

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

str2=str1;
str3= 'STRING POINTER';

printf ('Dolžina niza str1 je => %ld n', strlen (str1));
printf ('Dolžina niza str2 je => %ld n', strlen (str2));
printf ('Dolžina niza str3 je => %ld n', strlen (str3));
printf ('Dolžina niza'STRING LITERALS'je => %ld n', strlen ('STRING LITERALS'));

vrnitev 0;
}

Tu funkciji strlen posredujemo niz nizov, kazalec niza in literal niza, funkcija pa vrne dolžino niza.

Dolžina niza z uporabo operatorja sizeof

Uporabljamo lahko tudi velikostof operator za dolžino niza (samo za literal niza). Toda od vrednosti, ki jo vrne ta operator, moramo odšteti 1, ker šteje tudi znak ' 0'. Za matriko in kazalec operater sizeof vrne dodeljeno velikost matrike in kazalec.

//Primer3.c
#vključi

intglavni()
{
charstr1[30] = 'VRVICA';
char *str2=str1;

printf ('Dolžina'VRVICA'je => %d n',(velikostof('VRVICA') - 1));
printf ('Dodeljena velikost niza str1 je => %d n',velikostof(str1));
printf ('Velikost kazalca str2 je => %d n',velikostof(str2));

vrnitev 0;
}

Tukaj v vrstici št. 9 podamo nizovnikovnik STRING in dobimo velikost, vključno z znakom ' 0'. Torej odštejemo 1 in dobimo dejansko velikost niza.

Ko posredujemo niz operaterju sizeof, ta vrne dodeljeno velikost matrike, ki je 30, in ko posreduje kazalec znakov, vrne velikost kazalca.

Zaključek

V tej vadnici smo vam pokazali, kako je mogoče dolžino niza izračunati na različne načine. V kodi lahko uporabite katero koli metodo, ki vam najbolj ustreza.