Різниця між strlen () та sizeof () для рядка в C

Зміст:

Anonim

Що таке strlen ()

strlen () - це функція для знаходження довжини рядка. Він підраховує загальну кількість символів, представлених у рядку, виключаючи нульовий символ. Загальна кількість символів у рядку включає алфавіти, спеціальні символи та цифри з пробілами.

З цієї різниці між strlen () та sizeof () для рядка в підручнику C ви дізнаєтесь:

  • Що таке strlen ()
  • Що таке sizeof ()
  • Синтаксис strlen ()
  • Синтаксис sizeof ()
  • Різниця між strlen () та розміром ()

Що таке sizeof ()

Sizeof () - це функція, яка використовується для обчислення розміру операнда. Він повертає розмір певної змінної. Ця функція може бути застосована до будь-якого типу даних, що містить примітивні типи, такі як цілі цілі та типи покажчиків, типи з плаваючою комою, структура або об'єднання. Результат роботи програми, що містить sizeof (), може відрізнятися для 32-розрядної системи та 64-розрядної системи.

ОСНОВНІ ВІДМІННОСТІ:

  • Метод Strlen використовується для пошуку довжини масиву, тоді як метод sizeof () використовується для пошуку фактичного розміру даних.
  • Strlen () підраховує кількість символів у рядку, тоді як sizeof () повертає розмір операнда.
  • Strlen () шукає нульове значення змінної, але sizeof () не дбає про значення змінної.
  • Повернене значення у strlen () є довгим int, з іншого боку, повертане значення у sizeof () не має знаку int.

Синтаксис strlen ()

strcount = strlen(my_string);

Тут my_string - це змінна масиву символів.

Приклад strlen ()

У нижченаведеній програмі C ми оголосили рядкову змінну типу char. Змінна Strng - це передана як аргумент функції strlen () для знаходження довжини рядка.

#include#includeint 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 вказує адресу змінної (подвійний х). Він збільшується до 1, що дає адресу, де ви можете зберігати наступну змінну типу x.

Введення тексту 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 (ім'я змінної): Variable-name = ім’я змінної, яку ви хочете визначити для розміру.

У нижченаведеній програмі C ми друкуємо тип даних розміру char. Оператор printf містить функцію sizeof з аргументом char.

Приклад sizeof (ім'я змінної):

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

Вихід:

sizeof(char) = 1

Синтаксис 3)

sizeof (вираз): Вираз = Вираз, який ви повинні оцінити.

Приклад 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 () та розміром ()

Ось важливі відмінності між strlen () та sizeof ():

Strlen () Розмір ()
Strlen () - це заздалегідь визначена функція, яка визначається у заголовковому файлі, відомому як string.h. Sizeof () - це унарний оператор або вираз часу компіляції, який обчислює обсяг пам'яті, зайнятий змінною.
Цей метод використовується для пошуку довжини масиву рядка або символу. Цей метод використовується для пошуку фактичного розміру даних (виділених) у байтах.
Він підраховує кількість символів у рядку, виключаючи нульові значення. Він повертає розмір операнда, а не довжину рядка (включаючи нульові значення).
Він виділяє пам'ять під час виконання та шукає нульове значення змінної. Sizeof () не дбає про значення змінної.
Функція Strlen () працює лише зі рядками символів Функція Sizeof () повертає обсяг пам'яті, виділений у байтах.
Повернене значення у strlen () довге int. Повернене значення в sizeof () не має знака int.
Існує лише один синтаксис strlen (), який є int strlen (const char * str); Існує три синтаксиси sizeof () 1) sizeof (type), 2) sizeof (ім'я змінної) та 3) sizeof (вираз):