Forskellen mellem strlen() og sizeof() for streng i C

Hvad er strlen()

strlen() er en funktion til at finde længden af ​​en streng. Det tæller det samlede antal tegn, der præsenteres i en streng, hvilket eliminerer null-tegnet. Det samlede antal tegn i strengen inkluderer alfabeter, specialtegn og tal med tomme mellemrum.

Hvad er størrelsen på ()

Størrelsen af() er en funktion, der bruges til at beregne størrelsen af ​​dens operand. Det returnerer størrelsen af ​​en bestemt variabel. Denne funktion kan anvendes på enhver datatype, der indeholder primitive typer som heltal og pointer typer, flydende kommatyper, struktur eller forening. Outputtet af programmet, der indeholder sizeof() kan være forskelligt på 32-bit-systemet og 64-bit-systemet.

Nøgleforskelle

  • Strlen-metoden bruges til at finde længden af ​​et array, hvorimod sizeof()-metoden bruges til at finde den faktiske størrelse af data.
  • Strlen() tæller antallet af tegn i en streng, mens sizeof() returnerer størrelsen af ​​en operand.
  • Strlen() leder efter nullværdien af ​​variabel, men sizeof() er ligeglad med variabelværdien.
  • Returværdi i strlen() er long int på den anden side er returværdi i sizeof() usigneret int.

Syntaks for strlen()

strcount = strlen(my_string); 

Her er my_string en tegnarrayvariabel.

Eksempel på strlen()

I nedenstående C-program har vi erklæret strengvariabel af typen char. Strng-variabel er en bestået som et argument for strlen()-funktionen til at finde længden af streng.

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

Output:

Length of given string is: 7

Syntaks for sizeof()

Syntaks 1)

størrelse af (type): Type= refereret type

Eksempel på størrelse af (type):

I nedenstående kode giver &type adressen på variablen (dobbelt x). Den inkrementeres med 1, hvilket giver adressen, hvor du kan gemme den næste variabel af typen x.

Hvis du skriver x ind i char* og tager forskellen, kan du kende det samlede antal variabler af typen char, der er gemt i hukommelsen. Vi har brugt getchar() til at læse tegn.

#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

Syntaks 2)

sizeof(variabelnavn): Variable-name= navnet på den variabel, du kan lide at bestemme størrelsen.

I nedenstående C-program udskriver vi størrelsen char-datatypen. Printf-sætning indeholder sizeof-funktion med argument char.

Eksempel på sizeof(variabelnavn):

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

Output:

sizeof(char) = 1

Syntaks 3)

størrelse på (udtryk): Udtryk= Udtryk du skal vurdere.

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

I nedenstående program beregner og udskriver vi først størrelsen af ​​variabel. Herefter evaluerer vi udtryk, gemmer det i variabel a og viser resultatet i printf-sætning.

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

Output:

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

Forskellen mellem strlen() og sizeof()

Her er de vigtige forskelle mellem strlen() og sizeof():

Forskellen mellem strlen() og sizeof()

Strlen() Størrelse af()
Strlen() er en foruddefineret funktion, som er defineret i en header-fil kendt som string.h. Sizeof() er en unær operator eller kompileringstidsudtryk, der beregner mængden af ​​hukommelsen optaget af en variabel.
Denne metode bruges til at finde længden af ​​en række af strenge eller tegn. Denne metode bruges til at finde den faktiske størrelse af data (allokeret) i bytes.
Den tæller antallet af tegn i en streng og eliminerer null-værdier. Det returnerer størrelsen af ​​en operand, ikke strenglængden (inklusive null-værdier).
Den tildeler hukommelse ved kørsel og ser efter nullværdien af ​​variabel. Sizeof() er ligeglad med variabelværdien.
Strlen()-funktionen virker kun med tegnstrenge Funktionen Sizeof() returnerer mængden af ​​hukommelse, der er allokeret i bytes.
Returværdi i strlen() er lang int. Returværdi i sizeof() er usigneret int.
Der er kun én syntaks for strlen() som er int strlen(const char *str); Der er tre syntakser for sizeof() 1) sizeof(type), 2) sizeof(variabelnavn) og 3) sizeof(udtryk):