Dužina niza u jeziku C

String Length C Language



Niz na jeziku C je niz znakova koji se završava null znakom ( 0). Duljina niza je broj znakova u nizu. U duljini niza ' 0' znak se ne broji.







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.h

Sintaksa:

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.