_mbclen
, mblen
, _mblen_l
_mbclen_l
멀티바이트 문자의 길이를 가져오고 유효성을 확인합니다.
Important
이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.
구문
size_t _mbclen(
const unsigned char *c
);
size_t _mbclen_l(
unsigned char const* c,
_locale_t locale
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
매개 변수
c
멀티바이트 문자입니다.
mbstr
멀티바이트 문자 바이트 시퀀스의 주소입니다.
count
검사할 바이트 수입니다.
locale
사용할 로캘입니다.
반환 값
_mbclen
멀티 _mbclen_l
바이트 문자 c
의 길이에 따라 1 또는 2를 반환합니다. 함수는 멀티바이트인지 여부에 관계없이 c
항상 UTF-8에 대해 1을 반환합니다. 에 대한 _mbclen
오류 반환이 없습니다.
그렇지 않은 NULL
mblen
_mblen_l
경우 mbstr
멀티바이트 문자의 길이(바이트)를 반환합니다. 및 _mblen_l
함수는 mblen
UTF-8에서 올바르게 작동하며 1에서 3 사이의 값을 반환할 수 있습니다. 이 NULL
경우mbstr
(또는 와이드 문자 null 문자를 가리키고_mblen_l
) mblen
0을 반환합니다. 가리키는 개체 mbstr
는 첫 번째 count
문자 내에서 유효한 멀티바이트 문자를 형성하거나 mblen
_mblen_l
-1을 반환해야 합니다.
설명
_mbclen
함수는 멀티바이트 문자 c
의 길이(바이트)를 반환합니다. 멀티바이트 문자의 리드 바이트를 가리키지 않는 경우 c
(암시적 호출 _ismbblead
에 의해 결정됨) 결과를 _mbclen
예측할 수 없습니다.
mblen
는 유효한 멀티바이트 문자인 경우 길이 mbstr
를 바이트 단위로 반환합니다. 또한 코드 페이지와 연결된 멀티바이트 문자 유효성도 결정합니다. mblen
은 mbstr
에 포함된 count
이하 바이트를 검사하지만 MB_CUR_MAX
를 초과하는 바이트는 검사하지 않습니다.
출력 값은 로캘의 LC_CTYPE
범주 설정에 의해 영향을 받습니다. _l
접미사가 없는 이러한 함수의 버전은 이 로캘 종속 동작에 현재 로캘을 사용합니다. _l
접미사 버전은 동일하게 동작하지만 대신 전달된 로캘 매개 변수를 사용합니다. 자세한 내용은 참조 및 로캘을 참조 setlocale
하세요.
_mbclen
_mblen_l
_mbclen_l
은 표준 C 라이브러리의 일부가 아닌 Microsoft 전용입니다. 이식 가능한 코드를 원하는 곳에 사용하지 않는 것이 좋습니다. 표준 C 호환성을 위해 사용하거나 mbrlen
대신 사용합니다mblen
.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
Tchar.h 루틴 | _UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tclen |
매크로 또는 인라인 함수에 매핑 | _mbclen |
매크로 또는 인라인 함수에 매핑 |
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
// crt_mblen.c
/* illustrates the behavior of the mblen function
*/
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int i;
char *pmbc = (char *)malloc( sizeof( char ) );
wchar_t wc = L'a';
printf( "Convert wide character to multibyte character:\n" );
wctomb_s( &i, pmbc, sizeof(char), wc );
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %x\n\n", *pmbc );
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );
pmbc = NULL;
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );
}
Convert wide character to multibyte character:
Characters converted: 1
Multibyte character: 61
Length in bytes of multibyte character 61: 1
Length in bytes of NULL multibyte character 0: 0
참고 항목
문자 분류
Locale
멀티바이트 문자 시퀀스 해석
_mbccpy
, _mbccpy_l
mbrlen
strlen
, wcslen
, _mbslen
, _mbslen_l
, _mbstrlen
_mbstrlen_l