Forskjellen mellom strlen () og sizeof () for streng i C

Innholdsfortegnelse:

Anonim

Hva er strlen ()

strlen () er en funksjon for å finne lengden på en streng. Den teller totalt antall tegn som presenteres i en streng, og eliminerer nulltegnet. Totalt antall tegn i streng inkluderer alfabeter, spesialtegn og tall, med blanke mellomrom.

I denne forskjellen mellom strlen () og sizeof () for streng i C tutorial, vil du lære:

  • Hva er strlen ()
  • Hva er størrelse på ()
  • Syntaks for strlen ()
  • Syntaks av størrelse på ()
  • Forskjellen mellom strlen () og sizeof ()

Hva er størrelse på ()

Sizeof () er en funksjon som brukes til å beregne størrelsen på operanden. Den returnerer størrelsen på en bestemt variabel. Denne funksjonen kan brukes på hvilken som helst datatype, som inneholder primitive typer som heltall- og pekertyper, flytende punkttyper, struktur eller forening. Utgangen fra programmet som inneholder sizeof () kan være forskjellig på 32-bitersystemet og 64-bitersystemet.

HOVEDFORSKJELL:

  • Strlen-metoden brukes til å finne lengden på en matrise, mens størrelsen på () -metoden brukes til å finne den faktiske størrelsen på data.
  • Strlen () teller antall tegn i en streng mens sizeof () returnerer størrelsen på en operand.
  • Strlen () ser etter nullverdien til variabelen, men sizeof () bryr seg ikke om variabelverdien.
  • Returverdi i strlen () er lang int derimot er returverdi i sizeof () usignert int.

Syntaks for strlen ()

strcount = strlen(my_string);

Her er my_string en variabel med tegnmatriser.

Eksempel på strlen ()

I C-programmet nedenfor har vi erklært strengvariabel av typen char. Strng-variabelen er bestått som et argument for strlen () -funksjonen for å finne lengden på strengen.

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

Produksjon:

Length of given string is: 7

Syntaks av størrelse på ()

Syntaks 1)

sizeof (type): Type = referert type

Eksempel på størrelse på (type):

I koden nedenfor gir & type adressen til variabelen (dobbel x). Den økes med 1 som gir adressen der du kan lagre neste variabel av typen x.

Hvis du skriver typ x i char * og tar forskjellen, kan du kjenne det totale antallet variabler av typen char som er lagret i minnet. Vi har brukt getchar () for å lese karakter.

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

produksjon:

8

Syntaks 2)

sizeof (variabelnavn): Variabelnavn = navn på variabelen du vil bestemme størrelse.

I C-programmet nedenfor skriver vi ut datatypen størrelse char. Printf-setning inneholder størrelse på funksjon med argumenttegn.

Eksempel på størrelse på (variabelt navn):

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

Produksjon:

sizeof(char) = 1

Syntaks 3)

sizeof (uttrykk): uttrykk = uttrykk du må evaluere.

Eksempel på størrelse på (uttrykk):

I programmet nedenfor beregner og skriver vi ut størrelsen på variabelen. Etter dette evaluerer vi uttrykk, lagrer det i variabel a og viser resultatet i printf-setning.

#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;}

Produksjon:

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

Forskjellen mellom strlen () og sizeof ()

Her er de viktige forskjellene mellom strlen () og sizeof ():

Strlen () Størrelsen av()
Strlen () er en forhåndsdefinert funksjon, som er definert i en headerfil kjent som string.h. Sizeof () er en unarisk operator eller et kompileringstidsuttrykk som beregner mengden minne som er opptatt av en variabel.
Denne metoden brukes til å finne lengden på en rekke streng eller tegn. Denne metoden brukes til å finne den faktiske størrelsen på data (tildelt) i byte.
Den teller antall tegn i en streng som eliminerer nullverdier. Den returnerer størrelsen på en operand, ikke strenglengden (inkludert nullverdier).
Den tildeler minne ved kjøretiden og ser etter nullverdien til variabelen. Sizeof () bryr seg ikke om den variable verdien.
Strlen () -funksjonen fungerer bare med tegnstrenger Sizeof () -funksjonen returnerer mengden minne som er tildelt i byte.
Returverdien i strlen () er lang int. Returverdien i sizeof () er usignert int.
Det er bare en syntaks for strlen () som er int strlen (const char * str); Det er tre syntakser av størrelse av () 1) størrelse av (type), 2) størrelse av (variabelt navn) og 3) størrelse av (uttrykk):