C Programiranje

Duljina niza u C jeziku

Duljina niza u C jeziku
Niz u jeziku C niz je znakova koji se završavaju nulom (\ 0). Duljina niza je broj znakova u nizu. U duljini niza '\ 0,' znak se ne računa.

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

Sintaksa:

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.

Kako instalirati i igrati Doom na Linuxu
Uvod u Doom Serija Doom nastala je 90-ih nakon izlaska originalnog Dooma. To je bio trenutni hit i od tog vremena nadalje igraća serija dobila je broj...
Vulkan za korisnike Linuxa
Sa svakom novom generacijom grafičkih kartica vidimo da programeri igara pomiču granice grafičke vjernosti i dolaze na korak od fotorealizma. No, bez ...
OpenTTD vs Simutrans
Stvaranje vlastite simulacije prijevoza može biti zabavno, opuštajuće i izuzetno primamljivo. Zbog toga morate isprobati što više igara kako biste pro...