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:
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): |