Verschil tussen strlen () en sizeof () voor string in C.

Inhoudsopgave:

Anonim

Wat is strlen ()

strlen () is een functie om de lengte van een string te vinden. Het telt het totaal aantal tekens dat in een string wordt gepresenteerd, waardoor het nul-teken wordt geëlimineerd. Het totale aantal tekens in een tekenreeks omvat alfabetten, speciale tekens en cijfers, met spaties.

In dit verschil tussen strlen () en sizeof () voor string in C-zelfstudie, leer je:

  • Wat is strlen ()
  • Wat is sizeof ()
  • Syntaxis van strlen ()
  • Syntaxis van sizeof ()
  • Verschil tussen strlen () en sizeof ()

Wat is sizeof ()

De sizeof () is een functie die wordt gebruikt om de grootte van zijn operand te berekenen. Het retourneert de grootte van een bepaalde variabele. Deze functie kan worden toegepast op elk gegevenstype, met primitieve typen zoals integer- en pointertypen, floating-point-typen, structuur of unie. De uitvoer van het programma met sizeof () kan verschillen op het 32-bits systeem en het 64-bits systeem.

BELANGRIJKSTE VERSCHILLEN:

  • De Strlen-methode wordt gebruikt om de lengte van een array te vinden, terwijl de methode sizeof () wordt gebruikt om de werkelijke grootte van gegevens te vinden.
  • Strlen () telt het aantal tekens in een tekenreeks, terwijl sizeof () de grootte van een operand retourneert.
  • Strlen () zoekt naar de null-waarde van de variabele, maar sizeof () geeft niet om de waarde van de variabele.
  • Retourwaarde in strlen () is lang int aan de andere kant retourwaarde in sizeof () is unsigned int.

Syntaxis van strlen ()

strcount = strlen(my_string);

Hier is my_string een tekenreeksvariabele.

Voorbeeld van strlen ()

In het onderstaande C-programma hebben we een stringvariabele van het type char gedeclareerd. De variabele Strng wordt doorgegeven als een argument van de functie strlen () om de lengte van de tekenreeks te vinden.

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

Uitgang:

Length of given string is: 7

Syntaxis van sizeof ()

Syntaxis 1)

sizeof (type): Type = verwezen type

Voorbeeld van sizeof (type):

In de onderstaande code geeft & type het adres van de variabele (dubbele x). Het wordt opgehoogd met 1, wat het adres geeft waar u de volgende variabele van het type x kunt opslaan.

Door x in char * te typen en het verschil te nemen, weet u het totale aantal variabelen van het type char dat in het geheugen is opgeslagen. We hebben getchar () gebruikt om karakter te lezen.

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

output:

8

Syntaxis 2)

sizeof (variabele-naam): Variabele-naam = naam van de variabele waarvan je de grootte wilt bepalen.

In het onderstaande C-programma drukken we het gegevenstype formaatkarakter af. Printf-instructie bevat sizeof-functie met argument char.

Voorbeeld van sizeof (variabelenaam):

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

Uitgang:

sizeof(char) = 1

Syntaxis 3)

sizeof (expression): Expression = Expressie die je moet evalueren.

Voorbeeld van sizeof (uitdrukking):

In het onderstaande programma berekenen en printen we eerst de grootte van de variabele. Hierna evalueren we de uitdrukking, slaan deze op in variabele a en geven het resultaat weer in de instructie 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;}

Uitgang:

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

Verschil tussen strlen () en sizeof ()

Hier zijn de belangrijke verschillen tussen strlen () en sizeof ():

Strlen De grootte van()
Strlen () is een vooraf gedefinieerde functie, die is gedefinieerd in een header-bestand dat bekend staat als string.h. Sizeof () is een unaire operator of compilatie-uitdrukking die de hoeveelheid geheugen berekent die door een variabele wordt ingenomen.
Deze methode wordt gebruikt om de lengte van een reeks tekenreeksen of tekens te vinden. Deze methode wordt gebruikt om de werkelijke grootte van de gegevens (toegewezen) in bytes te vinden.
Het telt het aantal tekens in een string en elimineert null-waarden. Het retourneert de grootte van een operand, niet de tekenreekslengte (inclusief null-waarden).
Het wijst geheugen toe tijdens de runtime en zoekt naar de nulwaarde van de variabele. Sizeof () geeft niet om de waarde van de variabele.
De functie Strlen () werkt alleen met tekenreeksen Sizeof () functie retourneert de hoeveelheid geheugen toegewezen in bytes.
Retourwaarde in strlen () is long int. De geretourneerde waarde in sizeof () is niet-ondertekend int.
Er is slechts één syntaxis van strlen () die int strlen (const char * str) is; Er zijn drie syntaxis: sizeof () 1) sizeof (type), 2) sizeof (variabelenaam) en 3) sizeof (uitdrukking):