U gore prikazanom primjeru, duljina niza str je 6.
U ovom ćemo vodiču prvo pokazati kako se koristi a korisnički definirana funkcija za izračunavanje duljine niza, a zatim ćemo vam pokazati ugrađenu funkciju knjižnice strlen () . Također vam pokazujemo upotrebu veličina operator za literalne znakove.
Duljina niza pomoću funkcije koju definira korisnik
Možete napisati korisnički definiranu funkciju koja vraća broj znakova u nizu.
// Primjer1.c
#uključi
intstringLength(char *str)
{
inti=0;
dok(str[i] ! = ' 0')i++;
povrataki;
}
intglavni()
{
charstr[30]= 'NIZ';
printf ('Duljina niza str je => %d n',stringLength(str));
povratak 0;
}
Ovdje ponavljamo while petlju iz i = 0 dok ne naiđemo na ' 0' lik. Vrijednost i se povećava za 1 u svakoj iteraciji while petlje. Kad petlja završi, vrijednost i je duljina niza.
Duljina niza pomoću ugrađene funkcije knjižnice
Ugrađena funkcija knjižnice strlen () Također se može koristiti za određivanje duljine niza.
funkcija strlen ():
Datoteka zaglavlja:
niz.hSintaksa:
veličina_t strlen (konst char *str)Argument: Ova funkcija uzima argument tipa pokazivača na char.
Povratna vrijednost: Ova funkcija vraća duljinu niza str . Imajte na umu da veličina_t je samo pseudonim bezznačnog cijelog broja.
// Primjer2.c#uključi
#uključi
intglavni()
{
charstr1[30]='STRING ARRAY';
char *str2;
char *str3;
str2=str1;
str3= 'STRING POINTER';
printf ('Duljina niza str1 je => %ld n', strlen (str1));
printf ('Duljina niza str2 je => %ld n', strlen (str2));
printf ('Duljina niza str3 je => %ld n', strlen (str3));
printf ('Duljina niza'ŽICA LITERALI'je => %ld n', strlen ('STRING LITERALS'));
povratak 0;
}
Ovdje funkciji strlen prosljeđujemo niz nizova, pokazivač niza i literal niza, a funkcija vraća duljinu niza.
Dužina niza pomoću sizeof Operatora
Također možemo koristiti veličina operator za duljinu niza (samo za literal niza). No, moramo oduzeti 1 od vrijednosti koju vraća ovaj operator, jer on također broji znak ' 0'. Za niz i pokazivač, operator sizeof vraća dodijeljenu veličinu niza i pokazivača.
// Primjer3.c#uključi
intglavni()
{
charstr1[30] = 'NIZ';
char *str2=str1;
printf ('Dužina 'NIZ'je => %d n',(veličina('NIZ') - 1));
printf ('Dodijeljena veličina niza str1 je => %d n',veličina(str1));
printf ('Veličina str2 pokazivača je => %d n',veličina(str2));
povratak 0;
}
Ovdje, u retku br. 9, prosljeđujemo doslovni niz STRING i dobivamo veličinu, uključujući znak ' 0'. Dakle, oduzimamo 1 i dobivamo stvarnu veličinu niza.
Kad proslijedimo niz operatoru sizeof, on vraća dodijeljenu veličinu niza, koja je 30, a pri prosljeđivanju pokazivača na znak vraća veličinu pokazivača.
Zaključak
Dakle, u ovom smo vodiču pokazali kako se duljina niza može izračunati na različite načine. U svom kodu možete koristiti bilo koju metodu koja vam najviše odgovara.