내보내기(0) 인쇄
모두 확장
and
div
eof
not
or
xor
확장 최소화
이 문서는 기계로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오. 추가 정보
번역
원본

mbrlen

현재 로캘을 사용하는 동안, 필요하다면 멀티 바이트 문자 중에 다시 시작 하는 기능을 사용하여 문자열의 바이트 수를 결정 합니다.

size_t mbrlen(
   const char *str,
   size_t maxSize,
   mbstate_t mbstate
);

str

null로 끝나는 문자열입니다.

maxSize

Null 종결 문자를 제외한 문자열의 최대 크기입니다.

mbstate

변환의 시프트 상태입니다.

문자열의 길이가 maxSize 미만일 경우, 각 함수는 종결 NULL 를 제외한 문자열의 수를 str 로 반환합니다. 문자열이 maxSize 보다 큰 경우, maxSize 이 반환 됩니다.

0

다음 카운트 또는 더 적은 바이트가 멀티바이트 문자로 완료된 경우, NULL 와이드 문자로 표현됩니다.

> 0

다음 카운트 또는 더 적은 바이트들이 유요한 멀티바이트 문자로 완료된 경우, 값은 완료된 멀티바이트 문자의 수로 반환됩니다.

-1

다음 카운트 바이트는 불완전한 멀티바이트와 처리된 모든 count 바이트들에 기여합니다.

-2

인코딩 오류가 발생한다면, 이 경우 다음 카운트 또는 더 적은 바이트들이 유효한 멀티바이트 문자들과 완료되는 것에 기여하지 않고, errno 값이 EILSEQ가 되고 모호한 변환상태가 됩니다.

mbrlen 함수는 필요한 경우 대부분의 maxSize 바이트를 검사하는 멀티 바이트 문자 중에 다시 시작 기능을 사용하여 str 의 멀티 바이트 문자 시퀀스를 구성하는 바이트 수를 결정합니다. mbstate_t 인수 mbstate 은 shift 키 상태를 추적하는데 사용 됩니다. NULL 이면 mbrlen 은 내부의 정적 mbstate_t 개체를 사용합니다. 이것은 다음과 같습니다.

mbrtowc(NULL, str, maxSize, mbstate)

mbstateNULL 인 경우를 제외하고, mbrlen 은 shift 키 상태를 추적 하는 자체 내부 정적 mbstate_t 개체에 의존합니다.

mbrlen 함수는 재시작 가능성이라는 면에서 _mbclen, mblen, _mblen_l 와 다릅니다. 변환 상태는 동일한 것들의 차후의 호출 또는 다른 재시작 되는 함수를 위해 mbstate 에 저장됩니다. 재시작 함수나 그렇지 않은 함수의 사용을 혼용할 때, 결과는 정의되지 않습니다. 예를 들어, 응용프로그램은 wcsrlen 라기 보다 wcslen 를 사용합니다. 만일 그 다음 호출인 wcsrtombswcstombs. 대신에 사용되는 경우입니다.

제네릭 텍스트 라우팅 매핑

TCHAR.H 루틴

_UNICODE 및 _MBCS 미정의

_MBCS 정의됨

_UNICODE 정의됨

n/a

n/a

mbrlen

n/a

루틴

필수 헤더

mbrlen

<wchar.h>

추가적인 호환성 정보에 대해서는, 도입부의 호환성을 참고하십시오.

// crt_mbrlen.c

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <wchar.h>

size_t Example(const char * pStr)
{
    size_t      charLen = 0;
    size_t      charCount = 0;
    mbstate_t   mbState;

    memset(&mbState, 0, sizeof(mbState));
    
    while ((charLen = mbrlen(pStr, MB_CUR_MAX, &mbState)) != 0 &&
            charLen != (size_t)-1 && charLen != (size_t)-2)
    {
        pStr += charLen;
        charCount++;
    } 

    return (charCount);
} 

int main( void )
{
    size_t      charCount = 0;
    const char  *pSample = "Every good boy does fine.";

    charCount = Example(pSample);
    printf("%s\nLength: %d\n", pSample, charCount);
}
모든 좋은 녀석은 잘 수행합니다.
길이: 25

커뮤니티 추가 항목

추가
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2014 Microsoft