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

Содержание:

Anonim

Что такое 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 () - unsigned 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 = ссылочный тип

Пример sizeof (тип):

В приведенном ниже коде & type дает адрес переменной (двойной x). Он увеличивается на 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 (имя-переменной): имя-переменной = имя переменной, размер которой вы хотите определить.

В приведенной ниже программе на C мы печатаем тип данных size char. Оператор 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 () - это предопределенная функция, которая определена в файле заголовка, известном как string.h. Sizeof () - это унарный оператор или выражение времени компиляции, которое вычисляет объем памяти, занятой переменной.
Этот метод используется для определения длины массива строки или символа. Этот метод используется для определения фактического размера данных (выделенных) в байтах.
Он подсчитывает количество символов в строке, исключая нулевые значения. Он возвращает размер операнда, а не длину строки (включая нулевые значения).
Он выделяет память во время выполнения и ищет нулевое значение переменной. Sizeof () не заботится о значении переменной.
Функция Strlen () работает только с символьными строками Функция Sizeof () возвращает объем выделенной памяти в байтах.
Возвращаемое значение в strlen () - long int. Возвращаемое значение в sizeof () - целое число без знака.
Есть только один синтаксис strlen (): int strlen (const char * str); Существует три синтаксиса sizeof () 1) sizeof (тип), 2) sizeof (имя-переменной) и 3) sizeof (выражение):