Rozdiel medzi strlen () a sizeof () pre reťazec v C

Obsah:

Anonim

Čo je strlen ()

strlen () je funkcia na zisťovanie dĺžky reťazca. Počíta všetky znaky, ktoré sú uvedené v reťazci, bez nulového znaku. Celkový počet znakov v reťazci obsahuje abecedy, špeciálne znaky a čísla s medzerami.

V tomto rozdiele medzi strlen () a sizeof () pre reťazec v tutoriáli C sa dozviete:

  • Čo je strlen ()
  • Čo je sizeof ()
  • Syntax strlen ()
  • Syntax sizeof ()
  • Rozdiel medzi strlen () a sizeof ()

Čo je sizeof ()

Sizeof () je funkcia, ktorá sa používa na výpočet veľkosti operandu. Vráti veľkosť konkrétnej premennej. Túto funkciu je možné použiť na akýkoľvek údajový typ obsahujúci primitívne typy, ako sú typy celých čísel a ukazovateľov, typy s pohyblivou rádovou čiarkou, štruktúra alebo spojenie. Výstup programu obsahujúceho sizeof () sa môže líšiť v 32-bitovom systéme a 64-bitovom systéme.

KĽÚČOVÉ ROZDIELY:

  • Strlenova metóda sa používa na zistenie dĺžky poľa, zatiaľ čo metóda sizeof () sa používa na zistenie skutočnej veľkosti údajov.
  • Strlen () počíta počet znakov v reťazci, zatiaľ čo sizeof () vracia veľkosť operandu.
  • Strlen () hľadá nulovú hodnotu premennej, ale sizeof () sa o hodnotu premennej nestará.
  • Návratová hodnota v strlen () je long int, na druhej strane návratová hodnota v sizeof () je unsigned int.

Syntax strlen ()

strcount = strlen(my_string);

My_string je premenná poľa znakov.

Príklad strlen ()

V nižšie uvedenom programe C sme deklarovali reťazcovú premennú typu char. Premenná Strng sa odovzdáva ako argument funkcie strlen () na zistenie dĺžky reťazca.

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

Výkon:

Length of given string is: 7

Syntax sizeof ()

Syntax 1)

sizeof (type): Type = referencovaný typ

Príklad sizeof (type):

V nasledujúcom kóde dáva & type adresu premennej (double x). Je zvýšený o 1, čo dáva adresu, na ktorú môžete uložiť nasledujúcu premennú typu x.

Typecasting x do char * a pri použití rozdielu vám umožní poznať celkový počet premenných typu char uložených v pamäti. Na čítanie znakov sme použili getchar ().

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

výkon:

8

Syntax 2)

sizeof (názov premennej ): Názov premennej = názov premennej, ktorej veľkosť chcete určiť.

V nižšie uvedenom programe C tlačíme dátový typ veľkosti char. Príkaz Printf obsahuje funkciu sizeof s argumentom char.

Príklad sizeof (názov premennej):

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

Výkon:

sizeof(char) = 1

Syntax 3)

sizeof (expression): Expression = Výraz, ktorý musíte vyhodnotiť.

Príklad sizeof (výrazu):

V nasledujúcom programe najskôr vypočítavame a tlačíme veľkosť premennej. Potom vyhodnotíme výraz, uložíme ho do premennej a a výsledok zobrazíme v príkaze 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;}

Výkon:

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

Rozdiel medzi strlen () a sizeof ()

Tu sú dôležité rozdiely medzi strlen () a sizeof ():

Strlen () Veľkosť()
Strlen () je preddefinovaná funkcia, ktorá je definovaná v hlavičkovom súbore známom ako string.h. Sizeof () je unárny operátor alebo výraz v čase kompilácie, ktorý počíta množstvo pamäte obsadenej premennou.
Táto metóda sa používa na zistenie dĺžky poľa reťazca alebo znaku. Táto metóda sa používa na zistenie skutočnej veľkosti údajov (pridelených) v bajtoch.
Spočítava počet znakov v reťazci a vylučuje nulové hodnoty. Vráti veľkosť operandu, nie dĺžku reťazca (vrátane nulových hodnôt).
Prideľuje pamäť za behu a hľadá nulovú hodnotu premennej. Sizeof () sa nestará o hodnotu premennej.
Funkcia Strlen () funguje iba s reťazcami znakov Funkcia sizeof () vracia množstvo pamäte pridelenej v bajtoch.
Návratová hodnota v strlen () je long int. Návratová hodnota v sizeof () je unsigned int.
Existuje iba jedna syntax strlen (), ktorá je int strlen (const char * str); Existujú tri syntaxe sizeof () 1) sizeof (type), 2) sizeof (názov premennej) a 3) sizeof (výraz):