Co je strlen ()
strlen () je funkce pro zjištění délky řetězce. Počítá celkem znaků, které jsou uvedeny v řetězci, čímž se eliminuje nulový znak. Celkový počet znaků v řetězci zahrnuje abecedy, speciální znaky a čísla s mezerami.
V tomto rozdílu mezi strlen () a sizeof () pro řetězec v tutoriálu C se naučíte:
- Co je strlen ()
- Co je sizeof ()
- Syntaxe strlen ()
- Syntaxe sizeof ()
- Rozdíl mezi strlen () a sizeof ()
Co je sizeof ()
Sizeof () je funkce, která se používá k výpočtu velikosti operandu. Vrátí velikost konkrétní proměnné. Tuto funkci lze použít na jakýkoli datový typ, který obsahuje primitivní typy, jako jsou typy celých čísel a ukazatelů, typy s plovoucí desetinnou čárkou, struktura nebo sjednocení. Výstup programu obsahujícího sizeof () se může lišit v 32bitovém systému a 64bitovém systému.
KLÍČOVÉ ROZDÍLY:
- Strlenova metoda se používá k nalezení délky pole, zatímco metoda sizeof () se používá k nalezení skutečné velikosti dat.
- Strlen () počítá počet znaků v řetězci, zatímco sizeof () vrací velikost operandu.
- Strlen () hledá nulovou hodnotu proměnné, ale sizeof () se nestará o hodnotu proměnné.
- Návratová hodnota v strlen () je dlouhá int, na druhou stranu návratová hodnota v sizeof () je nepodepsaná int.
Syntaxe strlen ()
strcount = strlen(my_string);
Zde je my_string proměnná pole znaků.
Příklad strlen ()
V níže uvedeném programu C jsme deklarovali řetězcovou proměnnou typu char. Proměnná Strng je předána jako argument funkce strlen () k nalezení délky řetězce.
#include#include int main(){char strng[] = "January";printf("Length of given string is: %lu\n", strlen(strng));}
Výstup:
Length of given string is: 7
Syntaxe sizeof ()
Syntax 1)
sizeof (type): Type = odkazovaný typ
Příklad sizeof (type):
V níže uvedeném kódu udává & type adresu proměnné (double x). Je zvýšen o 1, což dává adresu, kam můžete uložit další proměnnou typu x.
Typecasting x do char * a převzetí rozdílu vám umožní znát celkový počet proměnných typu char uložených v paměti. Ke čtení znaku jsme použili getchar ().
#include#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)int main(){double x;printf("%ld", my_sizeof(x));getchar();return 0;}
výstup:
8
Syntaxe 2)
sizeof (název proměnné): Název proměnné = název proměnné, pro kterou chcete určit velikost.
V níže uvedeném programu C tiskneme datový typ velikosti char. Printf prohlášení obsahuje sizeof funkce s argumentem char.
Příklad sizeof (název proměnné):
#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}
Výstup:
sizeof(char) = 1
Syntax 3)
sizeof (expression): Expression = Výraz, který musíte vyhodnotit.
Příklad sizeof (výraz):
V níže uvedeném programu nejprve vypočítáme a vytiskneme velikost proměnné. Poté vyhodnotíme výraz, uložíme jej do proměnné a a výsledek zobrazíme v příkazu printf.
#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;}
Výstup:
Size of variable p : 1Size of an expression : 8Size of explicitly converted expression : 4
Rozdíl mezi strlen () a sizeof ()
Zde jsou důležité rozdíly mezi strlen () a sizeof ():
Strlen () | Velikost() |
Strlen () je předdefinovaná funkce, která je definována v hlavičkovém souboru známém jako string.h. | Sizeof () je unární operátor nebo výraz v době kompilace, který vypočítává velikost paměti obsazené proměnnou. |
Tato metoda se používá k vyhledání délky pole řetězce nebo znaku. | Tato metoda se používá k vyhledání skutečné velikosti dat (přidělených) v bajtech. |
Počítá počet znaků v řetězci a vylučuje nulové hodnoty. | Vrátí velikost operandu, nikoli délku řetězce (včetně hodnot null). |
Přiděluje paměť za běhu a hledá nulovou hodnotu proměnné. | Sizeof () se nestará o hodnotu proměnné. |
Funkce Strlen () funguje pouze s řetězci znaků | Funkce Sizeof () vrací množství paměti přidělené v bajtech. |
Návratová hodnota v strlen () je dlouhá int. | Návratová hodnota v sizeof () je unsigned int. |
Existuje pouze jedna syntaxe strlen (), která je int strlen (const char * str); | Existují tři syntaxe sizeof () 1) sizeof (type), 2) sizeof (název-proměnné) a 3) sizeof (výraz): |