C의 문자열에 대한 strlen()과 sizeof()의 차이점

strlen()이란 무엇입니까?

strlen()은 문자열의 길이를 찾는 함수입니다. 문자열에 표시된 총 문자를 세어 널 문자를 제거합니다. 문자열의 총 문자 수에는 알파벳, 특수 문자, 숫자, 공백이 포함됩니다.

sizeof()란 무엇입니까?

sizeof()는 피연산자의 크기를 계산하는 데 사용되는 함수입니다. 특정 변수의 크기를 반환합니다. 이 함수는 정수와 같은 기본 유형을 포함하는 모든 데이터 유형에 적용할 수 있습니다. 포인터 유형, 부동 소수점 유형, 구조 또는 공용체입니다. sizeof()를 포함하는 프로그램의 출력은 32비트 시스템과 64비트 시스템에서 다를 수 있습니다.

주요 차이점

  • Strlen 메소드는 배열의 길이를 찾는 데 사용되는 반면 sizeof() 메소드는 데이터의 실제 크기를 찾는 데 사용됩니다.
  • Strlen()은 문자열에 있는 문자의 개수를 세는 반면, sizeof()는 피연산자의 크기를 반환합니다.
  • Strlen()은 변수의 null 값을 찾지만 sizeof()는 변수 값에 신경 쓰지 않습니다.
  • strlen()의 반환 값은 long int인 반면 sizeof()의 반환 값은 unsigned int입니다.

strlen()의 구문

strcount = strlen(my_string); 

여기서 my_string은 문자 배열 변수입니다.

strlen()의 예

아래 C 프로그램에서는 char 유형의 문자열 변수를 선언했습니다. Strng 변수는 strlen() 함수의 인수로 전달되어 길이를 구합니다. .

#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은 변수(double 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 문에는 char 인수가 포함된 sizeof 함수가 포함되어 있습니다.

sizeof(변수 이름)의 예:

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

출력:

sizeof(char) = 1

구문 3)

크기(표현식): 표현식= 평가해야 하는 표현식입니다.

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()는 메모리가 차지하는 양을 계산하는 단항 연산자 또는 컴파일 타임 표현식입니다. 변수.
이 방법은 문자열이나 문자 배열의 길이를 찾는 데 사용됩니다. 이 방법은 (할당된) 데이터의 실제 크기를 바이트 단위로 찾는 데 사용됩니다.
null 값을 제거하여 문자열의 문자 개수를 센다. 문자열 길이(null 값 포함)가 아닌 피연산자의 크기를 반환합니다.
런타임에 메모리를 할당하고 변수의 null 값을 찾습니다. Sizeof()는 변수 값에 신경 쓰지 않습니다.
Strlen() 함수는 문자열에서만 작동합니다. Sizeof() 함수는 할당된 메모리 양을 바이트 단위로 반환합니다.
strlen()의 반환 값은 long int입니다. sizeof()의 반환 값은 unsigned int입니다.
strlen() 구문은 int strlen(const char *str); 단 하나뿐입니다. sizeof() 1) sizeof(유형), 2) sizeof(변수 이름) 및 3) sizeof(표현식)의 세 가지 구문이 있습니다.