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

Tartalomjegyzék:

Anonim

Mi a strlen ()

A strlen () egy függvény a karakterlánc hosszának megkeresésére. Megszámolja a karaktersorozatokban szereplő összes karaktert, megszüntetve a null karaktert. A karakterláncban szereplő karakterek száma ábécét, speciális karaktereket és számokat tartalmaz, üres szóközökkel.

Ebben a különbségben a strlen () és a sizeof () karakterlánc között a C oktatóanyagban megtudhatja:

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

Mi a sizeof ()

A sizeof () egy olyan függvény, amelyet az operandus méretének kiszámítására használnak. Visszaadja az adott változó méretét. Ez a függvény bármilyen adattípusra alkalmazható, amely primitív típusokat tartalmaz, például egész- és mutatótípusokat, lebegőpontos típusokat, struktúrát vagy egyesítést. A sizeof () -t tartalmazó program kimenete eltérhet a 32 bites és a 64 bites rendszereken.

Főbb különbségek:

  • A tömb hosszának meghatározására Strlen módszert, míg az adatok tényleges méretére a sizeof () metódust használjuk.
  • A Strlen () megszámolja a karakterek számát egy karakterláncban, míg a sizeof () az operandus méretét adja vissza.
  • Strlen () a változó nullértékét keresi, de a sizeof () nem törődik a változó értékével.
  • A strlen () visszatérési értéke hosszú int, viszont a sizeof () értéke vissza nem írt int.

A strlen () szintaxisa

strcount = strlen(my_string);

Itt a my_string egy karakter tömb változó.

Példa a strlen ()

Az alábbi C programban deklaráltuk a char típusú string változót. Az Strng változó a strlen () függvény argumentumaként kerül átadásra a karakterlánc hosszának meghatározásához.

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

Kimenet:

Length of given string is: 7

A sizeof () szintaxisa

Szintaxis 1)

sizeof (type): Típus = hivatkozott típus

Példa sizeof (type) méretére:

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

Az x karakter beírása char-ba * és a különbség felvétele lehetővé teszi, hogy megismerje a memóriában tárolt char típusú változók teljes számát. A getchar () karaktert használtuk karakter olvasására.

#include#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, amelyet meg szeretne határozni.

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

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

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

Kimenet:

sizeof(char) = 1

Szintaxis 3)

sizeof (kifejezés): Kifejezés = Kifejezés, amelyet értékelnie kell.

Példa méretre (kifejezés):

Az alábbi programban először kiszámoljuk é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 az eredményt megjelenítjük a printf utasításban.

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

Kimenet:

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

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

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

Strlen () Mérete()
A Strlen () egy előre definiált függvény, amelyet egy string.h néven ismert fejlécfájlban definiálunk. A Sizeof () egy univerzális operátor vagy fordítási idejű kifejezés, amely kiszámítja a változó által elfoglalt memória mennyiségét.
Ezt a módszert használják egy string vagy karakter tömb hosszának meghatározására. Ezt a módszert használják az adatok tényleges (allokált) méretének bájtokban történő megkeresésére.
Megszámolja a karakterek számát egy karakterláncban, megszüntetve a null értékeket. Az operandus méretét adja vissza, nem a karakterlánc hosszát (a null értékeket is beleértve).
Futtatá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.
A Strlen () függvény csak karakterláncokkal működik A Sizeof () függvény a bájtokban kiosztott memória mennyiségét adja vissza.
A strlen () visszatérési értéke hosszú int. A visszatérési érték a sizeof () -ben előjel nélküli int.
A strlen () egyetlen szintaxisa létezik, amely int strlen (const char * str); A sizeof () 1) sizeof (type), 2) sizeof (változónév) és 3) sizeof (kifejezés) három szintaxisa létezik: