Razlika med strlen () in sizeof () za niz v jeziku C

Kazalo:

Anonim

Kaj je strlen ()

strlen () je funkcija za iskanje dolžine niza. Prešteje skupno število znakov, ki so predstavljeni v nizu, in odpravi ničelni znak. Skupno število znakov v nizu vključuje abecede, posebne znake in številke s praznimi presledki.

V tej razliki med strlen () in sizeof () za niz v C vadnici boste izvedeli:

  • Kaj je strlen ()
  • Kaj je sizeof ()
  • Sintaksa strlen ()
  • Sintaksa velikosti ()
  • Razlika med strlen () in velikostjo ()

Kaj je sizeof ()

Sizeof () je funkcija, ki se uporablja za izračun velikosti njegovega operanda. Vrne velikost določene spremenljivke. To funkcijo lahko uporabite za kateri koli podatkovni tip, ki vsebuje primitivne tipe, kot so celoštevilčni in kazalčni tipi, tipi s plavajočo vejico, struktura ali zveza. Izhodni podatki programa, ki vsebuje sizeof (), se lahko v 32-bitnem in 64-bitnem sistemu razlikujejo.

KLJUČNE RAZLIKE:

  • Metoda Strlen se uporablja za iskanje dolžine polja, medtem ko se metoda sizeof () uporablja za iskanje dejanske velikosti podatkov.
  • Strlen () šteje število znakov v nizu, medtem ko sizeof () vrne velikost operanda.
  • Strlen () išče ničelno vrednost spremenljivke, vendar sizeof () ne skrbi za vrednost spremenljivke.
  • Vrnjena vrednost v strlen () je dolga int, na drugi strani pa je vrnjena vrednost v sizeof () nepodpisana int.

Sintaksa strlen ()

strcount = strlen(my_string);

Tu je my_string spremenljivka nizov znakov.

Primer strlena ()

V spodnjem programu C smo razglasili nizno spremenljivko tipa char. Spremenljivka Strng je podana kot argument funkcije strlen () za iskanje dolžine niza.

#include#includeint main(){char strng[] = "January";printf("Length of given string is: %lu\n", strlen(strng));}

Izhod:

Length of given string is: 7

Sintaksa velikosti ()

Sintaksa 1)

sizeof (type): Type = referenčni tip

Primer velikosti (tipa):

V spodnji kodi & type daje naslov spremenljivke (dvojni x). Povečan je z 1, kar daje naslov, kamor lahko shranite naslednjo spremenljivko tipa x.

Če vtipkate x v char * in upoštevate razliko, lahko ugotovite skupno število spremenljivk tipa char, shranjenih v pomnilniku. Za branje znaka smo uporabili getchar ().

#include#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)int main(){double x;printf("%ld", my_sizeof(x));getchar();return 0;}

izhod:

8

Sintaksa 2)

sizeof (ime-spremenljivke): Variable-name = ime spremenljivke, za katero želite določiti velikost.

V spodnjem programu C tiskamo podatkovni tip velikosti char. Stavek Printf vsebuje funkcijo sizeof z argumentom char.

Primer sizeof (ime spremenljivke):

#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}

Izhod:

sizeof(char) = 1

Sintaksa 3)

sizeof (izraz): Izraz = izraz, ki ga morate oceniti.

Primer velikosti (izraza):

V spodnjem programu najprej izračunamo in natisnemo velikost spremenljivke. Po tem ocenimo izraz, ga shranimo v spremenljivko a in rezultat prikažemo v izjavi printf.

#includeint main() {char p = 'S';double q = 4.65;printf("Size of variable p : %d\n",sizeof(p));printf("Size of an expression : %d\n",sizeof(p+q));int a = (int)(p+q);printf("Size of explicitly converted expression : %d\n",sizeof(a));return 0;}

Izhod:

Size of variable p : 1Size of an expression : 8Size of explicitly converted expression : 4

Razlika med strlen () in velikostjo ()

Tu so pomembne razlike med strlen () in sizeof ():

Strlen () Velikost ()
Strlen () je vnaprej določena funkcija, ki je definirana v naslovni datoteki, imenovani string.h. Sizeof () je unarni operator ali izraz prevajalskega časa, ki izračuna količino pomnilnika, ki ga zaseda spremenljivka.
Ta metoda se uporablja za iskanje dolžine polja niza ali znaka. Ta metoda se uporablja za iskanje dejanske velikosti podatkov (dodeljenih) v bajtih.
Šteje število znakov v nizu in odpravlja ničelne vrednosti. Vrne velikost operanda, ne dolžine niza (vključno z ničelnimi vrednostmi).
Med izvajanjem dodeli pomnilnik in poišče ničelno vrednost spremenljivke. Sizeof () ne skrbi za vrednost spremenljivke.
Funkcija Strlen () deluje samo z nizi znakov Funkcija Sizeof () vrne količino pomnilnika, dodeljenega v bajtih.
Vrnjena vrednost v strlen () je dolga int. Vrnjena vrednost v sizeof () je nepodpisana int.
Obstaja samo ena sintaksa strlen (), ki je int strlen (const char * str); Obstajajo tri sintakse sizeof () 1) sizeof (type), 2) sizeof (ime-spremenljivke) in 3) sizeof (izraz):