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()은 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(표현식)의 세 가지 구문이 있습니다. |