_mbsnbcmp, _mbsnbcmp_l
두 멀티바이트 문자열의 처음 n바이트를 비교합니다.
중요
이 API는 Windows 런타임에서 실행되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 CRT 함수는 /ZW 옵션을 지원하지 않음을 참조하십시오.
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
사용할 로캘입니다.
반환 값
반환 값은 string1 및 string의 부분 문자열 간의 서수 관계를 나타냅니다.
반환 값 |
설명 |
---|---|
< 0 |
string1 부분 문자열이 string2 부분 문자열보다 작습니다. |
0 |
string1 부분 문자열이 string2 부분 문자열과 같습니다. |
> 0 |
string1 부분 문자열이 string2 부분 문자열보다 큽니다. |
매개 변수 유효성 검사 오류 시 _mbsnbcmp 및 _mbsnbcmp_l은 <string.h> 및 <mbstring.h>에 정의된 _NLSCMPERROR를 반환합니다.
설명
_mbsnbcmp 함수는 string1 및 string2의 처음 count자까지를 비교한 다음 부분 문자열 간의 관계를 나타내는 값을 반환합니다. _mbsnbcmp는 대소문자를 구분하는 _mbsnbicmp 버전입니다. _mbsnbcoll과는 달리 _mbsnbcmp에는 로캘의 데이터 정렬 순서가 적용되지 않습니다. _mbsnbcmp는 현재 멀티바이트 코드 페이지에 따라 멀티바이트 문자 시퀀스를 인식합니다.
_mbsnbcmp는 _mbsncmp와 비슷합니다. 단, _mbsncmp는 문자열을 바이트가 아닌 문자로 비교합니다.
출력 값에는 로캘의 LC_CTYPE 범주 설정이 적용됩니다. 이 설정은 멀티바이트 문자의 선행 바이트 및 후행 바이트를 지정합니다. 자세한 내용은 setlocale을 참조하세요. _mbsnbcmp 함수는 이 로캘 종속 동작에 대해 현재 로캘을 사용합니다. _mbsnbcmp_l 함수는 locale 매개 변수를 대신 사용한다는 점을 제외하면 이 함수와 동일합니다. 자세한 내용은 로캘을 참조하십시오.
string1 또는 string2가 null 포인터이면 이러한 함수는 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기를 호출합니다. 계속해서 실행하도록 허용된 경우 이 함수는 _NLSCMPERROR를 반환하며 errno를 EINVAL로 설정합니다.
제네릭 텍스트 라우팅 매핑
Tchar.h 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
_MBCS 정의됨 |
_UNICODE 정의됨 |
---|---|---|---|
_tcsncmp |
_mbsnbcmp |
||
_tcsncmp_l |
_mbsnbcml |
요구 사항
루틴 |
필수 헤더 |
---|---|
_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
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출하려면 PInvoke를 사용합니다. 자세한 내용은 플랫폼 호출 예제을 참조하십시오.
참고 항목
참조
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l