U gore prikazanom primjeru, duljina niza str je 6.
U ovom uputstvu prvo ćemo pokazati kako se koristi 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 string literale.
Duljina niza pomoću funkcije koju definira korisnik
Možete napisati korisnički definiranu funkciju koja vraća broj znakova u nizu.
// Primjer1.c#include
int stringLength (char * str)
int i = 0;
dok (str [i] != '\ 0') i ++;
return i;
int main ()
char str [30] = "STRING";
printf ("Duljina niza str je =>% d \ n", stringLength (str));
return 0;
Ovdje ponavljamo while petlju iz i = 0 sve dok ne naiđemo na '\ 0' lik. Vrijednost ja se uvećava za 1 u svakoj iteraciji while petlje. Kada se petlja završi, vrijednost ja je duljina niza.
Duljina niza pomoću funkcije ugrađene 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:
size_t strlen (const char * str)Argument: Ova funkcija uzima argument pokazivača tipa na char.
Povratna vrijednost: Ova funkcija vraća duljinu niza str. Imajte na umu da veličina_t je samo zamjensko ime cijelog broja bez potpisa.
// Primjer2.c#include
#include
int main ()
char str1 [30] = "NIZNI NIZ";
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" STRING LITERALS "je =>% ld \ n", strlen ("STRING LITERALS"));
return 0;
Ovdje prosljeđujemo niz niza, pokazivač niza i literal niza funkciji strlen, a funkcija vraća duljinu niza.
Duljina niza pomoću veličine operatora
Također možemo koristiti veličina operator za duljinu niza (samo za literal niza). Ali, od vrijednosti koju je vratio ovaj operator moramo oduzeti 1, jer računa i znak '\ 0'. Za niz i pokazivač operator sizeof vraća dodijeljenu veličinu niza, odnosno pokazivača.
// Primjer3.c#include
int main ()
char str1 [30] = "STRING";
char * str2 = str1;
printf ("Duljina" STRING "je =>% d \ n", (sizeof ("STRING") - 1));
printf ("Dodijeljena veličina polja str1 je =>% d \ n", sizeof (str1));
printf ("Veličina pokazivača str2 je =>% d \ n", sizeof (str2));
return 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.
Kada proslijedimo niz operatoru sizeof, on vraća dodijeljenu veličinu niza, koja je 30, a prilikom prosljeđivanja pokazivača znakova, vraća veličinu pokazivača.
Zaključak
Dakle, u ovom smo uputstvu pokazali kako se dužina niza može izračunati na razne načine. U svom kodu možete koristiti koji god način vam najviše odgovara.