Skillnaden mellan strlen() och sizeof() för sträng i C

Vad är strlen()

strlen() är en funktion för att hitta längden på en sträng. Den räknar totalt antal tecken som presenteras i en sträng, vilket eliminerar nolltecknet. Det totala antalet tecken i strängen inkluderar alfabet, specialtecken och siffror, med blanksteg.

Vad är sizeof()

Sizeof() är en funktion som används för att beräkna storleken på dess operand. Den returnerar storleken på en viss variabel. Den här funktionen kan tillämpas på vilken datatyp som helst, som innehåller primitiva typer som heltal och pekartyper, flyttalstyper, struktur eller förening. Utdata från programmet som innehåller sizeof() kan vara olika på 32-bitars- och 64-bitarssystemet.

VÄSENTLIGA SKILLNADER

  • Strlen-metoden används för att hitta längden på en array medan metoden sizeof() används för att hitta den faktiska storleken på data.
  • Strlen() räknar antalet tecken i en sträng medan sizeof() returnerar storleken på en operand.
  • Strlen() letar efter nullvärdet för variabel men sizeof() bryr sig inte om variabelvärdet.
  • Returvärdet i strlen() är long int å andra sidan är returvärdet i sizeof() osignerat int.

Syntax för strlen()

strcount = strlen(my_string); 

Här är my_string en teckenuppsättningsvariabel.

Exempel på strlen()

I C-programmet nedan har vi deklarerat strängvariabel av typen char. Strng-variabeln är en godkänd som ett argument för strlen()-funktionen för att hitta längden på sträng.

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

Produktion:

Length of given string is: 7

Syntax för sizeof()

Syntax 1)

sizeof(typ): Typ= refererad typ

Exempel på storlek på (typ):

I koden nedan ger &type adressen till variabeln (dubbelt x). Den inkrementeras med 1 vilket ger adressen där du kan lagra nästa variabel av typ x.

Om du skriver x till char* och tar skillnaden kan du veta det totala antalet variabler av typen char som är lagrade i minnet. Vi har använt getchar() för att läsa tecken.

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

produktion:

8

Syntax 2)

sizeof(variabelnamn): Variable-name= namnet på variabeln du vill bestämma storleken på.

I nedanstående C-program skriver vi ut storleken char-datatyp. Printf-satsen innehåller sizeof-funktion med argument char.

Exempel på sizeof(variabelnamn):

#include<stdio.h>
int main()
{
	printf("sizeof(char) = %d\n\n", sizeof(char));
		
	return 0;
}

Produktion:

sizeof(char) = 1

Syntax 3)

sizeof(uttryck): Expression= Uttryck du måste utvärdera.

Exempel på storlek på (uttryck):

I programmet nedan beräknar och skriver vi först ut storleken på variabeln. Efter detta utvärderar vi uttryck, lagrar det i variabel a och visar resultatet i printf-satsen.

#include<stdio.h>
int 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;
}

Produktion:

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

Skillnaden mellan strlen() och sizeof()

Här är de viktiga skillnaderna mellan strlen() och sizeof():

Skillnaden mellan strlen() och sizeof()

Strlen() Storlek av()
Strlen() är en fördefinierad funktion, som definieras i en rubrikfil som kallas string.h. Sizeof() är en unär operator eller kompileringstidsuttryck som beräknar mängden minne som upptas av en variabel.
Denna metod används för att hitta längden på en array av sträng eller tecken. Denna metod används för att hitta den faktiska storleken på data (tilldelad) i byte.
Den räknar antalet tecken i en sträng och eliminerar nullvärden. Den returnerar storleken på en operand, inte stränglängden (inklusive nullvärden).
Den allokerar minne vid körning och letar efter nollvärdet för variabeln. Sizeof() bryr sig inte om variabelvärdet.
Strlen()-funktionen fungerar bara med teckensträngar Funktionen Sizeof() returnerar mängden minne som allokerats i byte.
Returvärdet i strlen() är long int. Returvärdet i sizeof() är osignerat int.
Det finns bara en syntax för strlen() som är int strlen(const char *str); Det finns tre syntaxer för sizeof() 1) sizeof(typ), 2) sizeof(variabelnamn) och 3) sizeof(uttryck):

Dagligt Guru99-nyhetsbrev

Kickstarta dagen med de senaste och viktigaste AI-nyheterna som levereras just nu.