다음을 통해 공유


_mbsnbcmp, _mbsnbcmp_l

두 멀티바이트 문자열의 첫 번째 n 바이트 수를 비교합니다.

Important

이 API는 Windows 런타임에서 실행되는 애플리케이션에서 사용할 수 없습니다. 자세한 내용은 유니버설 Windows 플랫폼 앱에서 지원되지 않는 CRT 함수를 참조하세요.

구문

int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbcmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

매개 변수

string1, string2
비교할 문자열입니다.

count
비교할 바이트 수입니다.

locale
사용할 로캘입니다.

반환 값

반환 값은 string1string2의 부분 문자열 간의 서수 관계를 나타냅니다.

반환 값 설명
< 0 string1 부분 문자열이 string2 부분 문자열보다 작습니다.
0 string1 부분 문자열이 string2 부분 문자열과 같습니다.
> 0 string1 부분 문자열이 string2 부분 문자열보다 큽니다.

매개 변수 유효성 검사 오류 _mbsnbcmp_mbsnbcmp_l 반환_NLSCMPERROR에서 string.h> 및 <mbstring.h>에 <정의됩니다.

설명

_mbsnbcmp 함수는 countstring1의 처음 string2자까지를 비교한 다음 부분 문자열 간의 관계를 나타내는 값을 반환합니다. _mbsnbcmp는 대소문자를 구분하는 _mbsnbicmp 버전입니다. 달리 _mbsnbcoll_mbsnbcmp 캘의 데이터 정렬 순서는 영향을 받지 않습니다. _mbsnbcmp는 현재 멀티바이트 코드 페이지에 따라 멀티바이트 문자 시퀀스를 인식합니다.

_mbsnbcmp_mbsncmp와 비슷합니다. 단, _mbsncmp는 문자열을 바이트가 아닌 문자로 비교합니다.

출력 값에는 로캘의 LC_CTYPE 범주 설정이 적용됩니다. 이 설정은 멀티바이트 문자의 선행 바이트 및 후행 바이트를 지정합니다. 자세한 내용은 setlocale를 참조하세요. _mbsnbcmp 함수는 이 로캘 종속 동작에 대해 현재 로캘을 사용합니다. _mbsnbcmp_l 함수는 locale 매개 변수를 대신 사용한다는 점을 제외하면 이 함수와 동일합니다. 자세한 내용은 Locale을 참조하세요.

null 포인터이거나 string1 string2 Null 포인터인 경우 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 실행을 계속할 수 있으면 함수가 반환 _NLSCMPERROR되고 errno EINVAL.

기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.

일반 텍스트 루틴 매핑

Tchar.h 루틴 _UNICODE_MBCS 정의되지 않음 정의된 _MBCS 정의된 _UNICODE
_tcsncmp strncmp _mbsnbcmp wcsncmp
_tcsncmp_l strncmp _mbsnbcml wcsncmp

요구 사항

루틴에서 반환된 값 필수 헤더
_mbsnbcmp <mbstring.h>
_mbsnbcmp_l <mbstring.h>

호환성에 대한 자세한 내용은 호환성을 참조하세요.

예시

// crt_mbsnbcmp.c
#include <mbstring.h>
#include <stdio.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";

int main( void )
{
   char tmp[20];
   int result;
   printf( "Compare strings:\n          %s\n", string1 );
   printf( "          %s\n\n", string2 );
   printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
   result = _mbsncmp( string1, string2 , 10 );
   if( result > 0 )
      _mbscpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      _mbscpy_s( tmp, sizeof(tmp), "less than" );
   else
      _mbscpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
   printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
   result = _mbsnicmp( string1, string2, 10 );
   if( result > 0 )
      _mbscpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      _mbscpy_s( tmp, sizeof(tmp), "less than" );
   else
      _mbscpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:   String 1 is %s string 2\n\n", tmp );
}

출력

Compare strings:
          The quick brown dog jumps over the lazy fox
          The QUICK brown fox jumps over the lazy dog

Function: _mbsnbcmp (first 10 characters only)
Result:   String 1 is greater than string 2

Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result:   String 1 is equal to string 2

참고 항목

문자열 조작
_mbsnbcat, _mbsnbcat_l
_mbsnbicmp, _mbsnbicmp_l
strncmp, wcsncmp, _mbsncmp_mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l_mbsnicmp_l
Locale
멀티바이트 문자 시퀀스 해석