다음을 통해 공유


strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

현재 로캘 또는 지정 된 로케일을 사용 하 여 두 문자열의 문자를 비교 합니다.

중요중요

_mbsncmp및 _mbsncmp_l Windows 런타임에서 실행 되는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 /zw에 지원 되는 CRT 함수.

int strncmp(
   const char *string1,
   const char *string2,
   size_t count 
);
int wcsncmp(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count 
);
int _mbsncmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsncmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count, 
   _locale_t locale
);int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);

매개 변수

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

  • count
    비교할 문자 수입니다.

  • locale
    사용 하는 로캘.

반환 값

관계의 부분 반환 값을 나타내는 string1 및 string2 다음과 같이 합니다.

반환 값

설명

< 0

string1부분 문자열 보다 작거나 string2 부분

0

string1부분 문자열이 동일한 string2 부분

> 0

string1부분 문자열 보다 큰 string2 부분

오류를 _mbsncmp 반환 _NLSCMPERROR, 문자열을 정의 합니다.H와 MBSTRING입니다.H.

설명

strncmp 함수가 사전순으로 비교, 기껏해야 첫 번째 count 문자 string1 및 string2 및 부분 문자열 간의 관계를 나타내는 값을 반환 합니다.strncmp대/소문자 버전의 _strnicmp.wcsncmp and _mbsncmp are case-sensitive versions of _wcsnicmp and _mbsnicmp.

wcsncmp및 _mbsncmp 와이드 및 멀티 바이트 문자 버전의 strncmp.인수 및 반환 값을 wcsncmp 와이드 문자 문자열입니다. _mbsncmp 멀티 바이트 문자 문자열입니다._mbsncmp멀티 바이트 코드 페이지에 따라 멀티 바이트 문자 시퀀스를 인식 하 고 반환 _NLSCMPERROR 에 오류가 있습니다.

또한 _mbsncmp 매개 변수의 유효성을 검사 합니다.경우 string1 또는 string2 가 null 포인터인 경우에 설명 된 대로 잘못 된 매개 변수 처리기를 호출 매개 변수 유효성 검사 .실행을 계속 하려면 허용 되는 경우 _mbsncmp 반환 _NLSCMPERROR 을 설정 하 고 errno 에 EINVAL.strncmp및 wcsncmp 매개 변수의 유효성을 검사 하지 않습니다.이러한 세 가지 함수 그렇지에 동일 하 게 동작 합니다.

출력 값의 설정에 의해 영향을 받지는 LC_CTYPE 범주 설정 로케일입니다. 볼 setlocale 에 대 한 자세한 내용은.없이 이러한 함수 버전을 _l 접미사는 현재 로케일에 대 한이 로케일 종속 동작; 사용 버전으로는 _l 접미사는 대신 전달 로캘 매개 변수를 사용 하는 경우를 제외 하 고 동일 합니다.자세한 내용은 로캘을 참조하십시오.

일반 텍스트 루틴 매핑

TCHAR입니다.H 루틴

_UNICODE 및 _Mbcs가 정의 되어 있지 않습니다

_Mbcs가 정의

_Unicode가 정의

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

매크로 또는 인라인 함수에 매핑

_mbsncmp

매크로 또는 인라인 함수에 매핑

n/a

n/a

_mbsncmp_l

n/a

요구 사항

루틴

필수 헤더

strncmp

<string.h>

wcsncmp

<string.h> 또는 <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.

예제

// crt_strncmp.c
#include <string.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      %s\n\n",
           string1, string2 );
   printf( "Function:   strncmp (first 10 characters only)\n" );
   result = strncmp( string1, string2 , 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n\n", tmp );
   printf( "Function:   strnicmp _strnicmp (first 10 characters only)\n" );
   result = _strnicmp( string1, string2, 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n", tmp );
}
  

해당 .NET Framework 항목

System::String::Compare

참고 항목

참조

문자열 조작 (CRT)

로캘

멀티 바이트 문자 시퀀스로 해석

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

strcoll 함수

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l