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.hSintaksa:
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.