Какво е strlen ()
strlen () е функция за намиране на дължината на низ. Той отчита общия брой символи, които са представени в низ, елиминирайки нулевия знак. Общият брой символи в низ включва, азбуки, специални знаци и числа, с празни интервали.
В тази разлика между strlen () и sizeof () за низ в урок C ще научите:
- Какво е strlen ()
- Какво е sizeof ()
- Синтаксис на strlen ()
- Синтаксис на sizeof ()
- Разлика между strlen () и sizeof ()
Какво е sizeof ()
Sizeof () е функция, която се използва за изчисляване размера на нейния операнд. Той връща размера на определена променлива. Тази функция може да се приложи към всеки тип данни, съдържащ примитивни типове като цели числа и типове указатели, типове с плаваща запетая, структура или обединение. Изходът на програмата, съдържащ sizeof (), може да е различен в 32-битовата система и 64-битовата система.
КЛЮЧОВИ РАЗЛИКИ:
- Методът Strlen се използва за намиране на дължината на масив, докато методът sizeof () се използва за намиране на действителния размер на данните.
- Strlen () отчита броя на символите в низ, докато sizeof () връща размера на операнда.
- Strlen () търси нулевата стойност на променливата, но sizeof () не се интересува от стойността на променливата.
- Връщаната стойност в strlen () е long int, от друга страна връщаната стойност в sizeof () е неподписана int.
Синтаксис на strlen ()
strcount = strlen(my_string);
Тук my_string е променлива на масив от символи.
Пример за strlen ()
В програмата по-долу C декларирахме променлива от типа char. Променливата Strng е предадена като аргумент на функцията strlen () за намиране на дължината на низа.
#include#include int main(){char strng[] = "January";printf("Length of given string is: %lu\n", strlen(strng));}
Изход:
Length of given string is: 7
Синтаксис на sizeof ()
Синтаксис 1)
sizeof (type): Type = посочен тип
Пример за размер на (тип):
В кода по-долу & type дава адреса на променливата (двоен x). Той се увеличава с 1, което дава адреса, където можете да съхранявате следващата променлива от тип x.
Typecasting x в char * и вземането на разликата ще ви позволи да знаете общия брой променливи от тип char, съхранявани в паметта. Използвахме getchar () за четене на символ.
#include#define my_sizeof(type) (char *)(&type+1)-(char*)(&type)int main(){double x;printf("%ld", my_sizeof(x));getchar();return 0;}
изход:
8
Синтаксис 2)
sizeof (име на променлива): Име на променлива = име на променливата, която искате да определите размер.
В програмата по-долу C отпечатваме типа данни char size. Операторът Printf съдържа sizeof функция с аргумент char.
Пример за sizeof (име на променлива):
#includeint main(){printf("sizeof(char) = %d\n\n", sizeof(char));return 0;}
Изход:
sizeof(char) = 1
Синтаксис 3)
sizeof (израз): Expression = израз, който трябва да оцените.
Пример за sizeof (израз):
В програмата по-долу първо изчисляваме и отпечатваме размера на променливата. След това оценяваме израза, съхраняваме го в променлива a и показваме резултата в оператора 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;}
Изход:
Size of variable p : 1Size of an expression : 8Size of explicitly converted expression : 4
Разлика между strlen () и sizeof ()
Ето важните разлики между strlen () и sizeof ():
Strlen () | Размер на() |
Strlen () е предварително дефинирана функция, която е дефинирана в заглавен файл, известен като string.h. | Sizeof () е унарен оператор или израз по време на компилация, който изчислява обема на паметта, заета от променлива. |
Този метод се използва за намиране на дължината на масив от низ или символ. | Този метод се използва за намиране на действителния размер на данните (разпределени) в байтове. |
Той отчита броя на символите в низ, като елиминира нулевите стойности. | Той връща размера на операнда, а не дължината на низа (включително нулевите стойности). |
Той разпределя памет по време на изпълнение и търси нулевата стойност на променливата. | Sizeof () не се интересува от стойността на променливата. |
Функцията Strlen () работи само със символни низове | Функцията Sizeof () връща количеството памет, разпределено в байтове. |
Връщаната стойност в strlen () е long int. | Връщаната стойност в sizeof () е неподписана int. |
Има само един синтаксис на strlen (), който е int strlen (const char * str); | Има три синтаксиса на sizeof () 1) sizeof (type), 2) sizeof (име на променлива) и 3) sizeof (израз): |