Különbség a strlen() és sizeof() között a C karakterlánchoz

Mi az a strlen()

Az strlen() egy karakterlánc hosszának meghatározására szolgáló függvény. Számolja a karakterláncban megjelenő összes karaktert, kiküszöbölve a null karaktert. A karakterláncban lévő karakterek teljes száma magában foglalja az ábécét, a speciális karaktereket és a számokat, szóközökkel.

Mi a sizeof()

A sizeof() egy függvény, amely az operandus méretének kiszámítására szolgál. Egy adott változó méretét adja vissza. Ez a függvény bármilyen adattípusra alkalmazható, olyan primitív típusokra, mint az egész és mutató típusok, lebegőpontos típusok, struktúra vagy unió. A sizeof()-t tartalmazó program kimenete eltérhet a 32 bites és a 64 bites rendszeren.

FŐBB ELTÉRÉSEK

  • A Strlen metódus egy tömb hosszának meghatározására szolgál, míg a sizeof() metódus az adatok tényleges méretének meghatározására szolgál.
  • Az Strlen() a karakterláncban lévő karakterek számát számolja, míg a sizeof() egy operandus méretét adja vissza.
  • Az Strlen() a változó null értékét keresi, de a sizeof() nem törődik a változó értékével.
  • Az strlen() visszatérési értéke hosszú int, míg a sizeof() visszatérési értéke előjel nélküli int.

strlen() szintaxisa

strcount = strlen(my_string); 

Itt a my_string egy karaktertömb változó.

Példa a strlen()

Az alábbi C programban char típusú karakterlánc-változót deklaráltunk. Az Strng változó az strlen() függvény argumentumaként átadott változó hosszának meghatározásához húr.

#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

A sizeof() szintaxisa

Szintaxis 1)

mérete (típus): Típus = hivatkozott típus

Példa a méretére(típus):

Az alábbi kódban a &type megadja a változó címét (dupla x). 1-gyel növekszik, ami azt a címet adja meg, ahol a következő x típusú változót tárolhatja.

Ha x-et char*-ba ír, és a különbséget figyelembe veszi, akkor megtudhatja a memóriában tárolt char típusú változók teljes számát. A getchar()-ot használtuk a karakter olvasására.

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

kimenet:

8

Szintaxis 2)

sizeof(változónév): Variable-name= annak a változónak a neve, amelynek méretét meg szeretné határozni.

Az alábbi C programban a size char adattípust nyomtatjuk ki. A Printf utasítás a sizeof függvényt tartalmazza char argumentummal.

Példa a sizeof(változónév):

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

output:

sizeof(char) = 1

Szintaxis 3)

mérete(kifejezés): Expression= Kifejezés, amelyet ki kell értékelnie.

Példa a(z) méretére:

Az alábbi programban először kiszámítjuk és kinyomtatjuk a változó méretét. Ezt követően kiértékeljük a kifejezést, eltároljuk az a változóban, és megjelenítjük az eredményt a printf utasításban.

#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  

Különbség a strlen() és a sizeof() között

Itt vannak a fontos különbségek a strlen() és sizeof() között:

Különbség a strlen() és a sizeof() között

Strlen() Mérete()
Az Strlen() egy előre definiált függvény, amely a string.h néven ismert fejlécfájlban van definiálva. A Sizeof() egy unáris operátor vagy fordítási idejű kifejezés, amely kiszámítja a memória mennyiségét, amelyet egy változó.
Ez a módszer egy karakterlánc vagy karakter tömb hosszának meghatározására szolgál. Ez a módszer az adatok (lefoglalt) tényleges méretének bájtokban történő meghatározására szolgál.
Számolja a karakterek számát egy karakterláncban, kiküszöbölve a null értékeket. Az operandus méretét adja vissza, nem a karakterlánc hosszát (beleértve a null értékeket).
Futás közben lefoglalja a memóriát, és megkeresi a változó null értékét. A Sizeof() nem törődik a változó értékével.
Az Strlen() függvény csak karakterláncokkal működik A Sizeof() függvény a lefoglalt memória mennyiségét adja vissza bájtokban.
Az strlen() visszatérési értéke hosszú int. A sizeof() visszatérési értéke előjel nélküli int.
Az strlen()-nek csak egy szintaxisa van, amely int strlen(const char *str); A sizeof() három szintaxisa létezik: 1) sizeof(type), 2) sizeof(változónév) és 3) sizeof(kifejezés):