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

Что такое стрлен()

strlen() — функция для определения длины строки. Он подсчитывает общее количество символов, представленных в строке, исключая нулевой символ. Общее количество символов в строке включает буквы алфавита, специальные символы и цифры с пробелами.

Что такое sizeof()

sizeof() — это функция, которая используется для вычисления размера своего операнда. Он возвращает размер конкретной переменной. Эту функцию можно применить к любому типу данных, включая примитивные типы, такие как целочисленные и типы указателей, типы с плавающей запятой, структура или объединение. Вывод программы, содержащей sizeof(), может отличаться в 32-битной и 64-битной системе.

ОСНОВНЫЕ ОТЛИЧИЯ

  • Метод Strlen используется для определения длины массива, тогда как метод sizeof() используется для определения фактического размера данных.
  • Strlen() подсчитывает количество символов в строке, а sizeof() возвращает размер операнда.
  • Strlen() ищет нулевое значение переменной, но sizeof() не заботится о значении переменной.
  • Возвращаемое значение в strlen() — это long int, а возвращаемое значение в sizeof() — беззнаковое целое.

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

strcount = strlen(my_string); 

Здесь my_string — это переменная массива символов.

Пример strlen()

В приведенной ниже программе на C мы объявили строковую переменную типа char. Переменная Strng передается в качестве аргумента функции strlen() для определения длины string.

#include<stdio.h> 
#include<string.h> 
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 дает адрес переменной (двойной x). Он увеличивается на 1, что дает адрес, по которому вы можете сохранить следующую переменную типа x.

Приведение x к типу char* и получение разницы позволит вам узнать общее количество переменных типа char, хранящихся в памяти. Мы использовали getchar() для чтения символов.

#include<stdio.h> 
#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(имя-переменной):

#include<stdio.h>
int main()
{
	printf("sizeof(char) = %d\n\n", sizeof(char));
		
	return 0;
}

Вывод:

sizeof(char) = 1

Синтаксис 3)

sizeof(выражение): Выражение= Выражение, которое вы должны оценить.

Пример sizeof(выражения):

В приведенной ниже программе мы сначала вычисляем и печатаем размер переменной. После этого мы оцениваем выражение, сохраняем его в переменной a и отображаем результат в операторе printf.

#include<stdio.h>
int 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 : 1                                                                                                                               
Size of an expression : 8                                                                                                                            
Size of explicitly converted expression : 4  

Разница между strlen() и sizeof()

Вот важные различия между 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(выражение):