Razlika između strlen () i sizeof () za niz u C

Sadržaj:

Anonim

Što je strlen ()

strlen () je funkcija za pronalaženje duljine niza. Broji ukupan broj znakova koji su predstavljeni u nizu, uklanjajući null znak. Ukupan broj znakova u nizu uključuje abecede, posebne znakove i brojeve s praznim razmacima.

U ovoj razlici između strlen () i sizeof () za niz u C vodiču naučit ćete:

  • Što je strlen ()
  • Što je sizeof ()
  • Sintaksa strlen ()
  • Sintaksa sizeof ()
  • Razlika između strlen () i sizeof ()

Što je sizeof ()

Sizeof () je funkcija koja se koristi za izračunavanje veličine njegovog operanda. Vraća veličinu određene varijable. Ova se funkcija može primijeniti na bilo koji tip podataka, koji sadrži primitivne tipove poput cijelih brojeva i tipova pokazivača, tipove s pomičnim zarezom, strukturu ili uniju. Izlaz programa koji sadrži sizeof () može se razlikovati na 32-bitnom sustavu i 64-bitnom sustavu.

KLJUČNE RAZLIKE:

  • Metoda Strlen koristi se za pronalaženje duljine niza, dok se metoda sizeof () koristi za pronalaženje stvarne veličine podataka.
  • Strlen () broji brojeve znakova u nizu, dok sizeof () vraća veličinu operanda.
  • Strlen () traži null vrijednost varijable, ali sizeof () ne mari za vrijednost varijable.
  • Povratna vrijednost u strlen () duga je int, s druge strane povratna vrijednost u sizeof () je nepotpisana int.

Sintaksa strlen ()

strcount = strlen(my_string);

Ovdje je my_string varijabla niza znakova.

Primjer strlena ()

U donjem programu C proglasili smo varijablu niza tipa char. Strng varijabla prosljeđuje se kao argument funkcije strlen () za pronalaženje duljine niza.

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

Izlaz:

Length of given string is: 7

Sintaksa sizeof ()

Sintaksa 1)

sizeof (type): Type = referencirani tip

Primjer veličine (tipa):

U donjem kodu & type daje adresu varijable (dvostruki x). Povećava se s 1 što daje adresu na koju možete pohraniti sljedeću varijablu tipa x.

Tipiziranje x u char * i uzimanje razlike omogućit će vam da znate ukupan broj varijabli tipa char pohranjene u memoriji. Za čitanje znaka koristili smo getchar ().

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

izlaz:

8

Sintaksa 2)

sizeof (ime-varijable): Variable-name = ime varijable koju želite odrediti veličinu.

U donjem programu C ispisujemo tip podataka veličine char. Izjava Printf sadrži veličinu funkcije s argumentom char.

Primjer sizeof (ime-varijable):

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

Izlaz:

sizeof(char) = 1

Sintaksa 3)

sizeof (izraz): Izraz = Izraz koji morate procijeniti.

Primjer veličine (izraza):

U donjem programu prvo izračunavamo i ispisujemo veličinu varijable. Nakon toga procjenjujemo izraz, pohranjujemo ga u varijablu a i prikazujemo rezultat u naredbi 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;}

Izlaz:

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

Razlika između strlen () i sizeof ()

Ovdje su važne razlike između strlen () i sizeof ():

Strlen () Veličina()
Strlen () je unaprijed definirana funkcija, koja je definirana u zaglavnoj datoteci poznatoj kao string.h. Sizeof () je unarni operator ili izraz za vrijeme kompajliranja koji izračunava količinu memorije koju zauzima varijabla.
Ova se metoda koristi za pronalaženje duljine niza niza ili znaka. Ova se metoda koristi za pronalaženje stvarne veličine podataka (dodijeljenih) u bajtovima.
Broji brojeve znakova u nizu eliminirajući null vrijednosti. Vraća veličinu operanda, a ne duljinu niza (uključujući null vrijednosti).
Dodjeljuje memoriju u vrijeme izvođenja i traži nulu vrijednosti varijable. Sizeof () ne mari za vrijednost varijable.
Funkcija Strlen () radi samo sa nizovima znakova Funkcija Sizeof () vraća količinu memorije dodijeljene u bajtovima.
Povratna vrijednost u strlen () duga je int. Povratna vrijednost u sizeof () je nepotpisana int.
Postoji samo jedna sintaksa strlen () koja je int strlen (const char * str); Postoje tri sintakse sizeof () 1) sizeof (type), 2) sizeof (имя-varijable) i 3) sizeof (izraz):