_mbsnbcmp、_mbsnbcmp_l_mbsnbcmp, _mbsnbcmp_l

最初の比較n 2 つのマルチバイト文字の文字列のバイト数。Compares the first n bytes of two multibyte-character strings.

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。This API cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.

構文Syntax

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
);

パラメーターParameters

string1, string2string1, string2
比較対象の文字列。The strings to compare.

countcount
比較するバイト数。The number of bytes to compare.

localelocale
使用するロケール。The locale to use.

戻り値Return Value

戻り値の部分文字列の序数の関係を示すstring1string2します。The return value indicates the ordinal relationship between the substrings of string1 and string2.

戻り値Return value 説明Description
< 0< 0 string1部分文字列より小さいstring2部分文字列。string1 substring is less than string2 substring.
00 string1部分文字列が同じstring2部分文字列。string1 substring is identical to string2 substring.
> 0> 0 string1部分文字列がより大きいstring2部分文字列。string1 substring is greater than string2 substring.

パラメーター検証エラー、 _mbsnbcmp_mbsnbcmp_l返すすると、定義されている<string.h > と<mbstring.h >。On a parameter validation error, _mbsnbcmp and _mbsnbcmp_l return _NLSCMPERROR, which is defined in <string.h> and <mbstring.h>.

RemarksRemarks

_Mbsnbcmp関数の最初の比較で最もカウントバイトstring1string2を示す値を返すと、これらの部分文字列間のリレーションシップ。The _mbsnbcmp functions compare at most the first count bytes in string1 and string2 and return a value that indicates the relationship between the substrings. _mbsnbcmpの大文字バージョン _mbsnbicmpします。_mbsnbcmp is a case-sensitive version of _mbsnbicmp. 異なり _mbsnbcoll_mbsnbcmpロケールの照合順序の影響を受けません。Unlike _mbsnbcoll, _mbsnbcmp is not affected by the collation order of the locale. _mbsnbcmp 、現在のマルチバイトに従ってマルチバイト文字シーケンスを認識コード ページします。_mbsnbcmp recognizes multibyte-character sequences according to the current multibyte code page.

_mbsnbcmpよう _mbsncmpことを除いて、 _mbsncmpバイトではなく文字で文字列を比較します。_mbsnbcmp resembles _mbsncmp, except that _mbsncmp compares strings by characters rather than by bytes.

出力値を受ける、 LC_CTYPE先行バイトを指定すると、ロケールの設定と末尾のバイトのマルチバイト文字のカテゴリ。The output value is affected by the LC_CTYPE category setting of the locale, which specifies the lead bytes and trailing bytes of multibyte characters. 詳細については、「setlocale」をご覧ください。For more information, see setlocale. _Mbsnbcmp関数は、このロケールに依存する動作に現在のロケールを使用します。The _mbsnbcmp function uses the current locale for this locale-dependent behavior. _Mbsnbcmp_l関数を使用する点を除いて同一です、ロケールパラメーター代わりにします。The _mbsnbcmp_l function is identical except that it uses the locale parameter instead. 詳細については、「 Locale」を参照してください。For more information, see Locale.

いずれかstring1またはstring2 null ポインターの場合は、」の説明に従って、これらの関数は、無効なパラメーター ハンドラーを呼び出しますパラメーターの検証です。If either string1 or string2 is a null pointer, these functions invoke the invalid parameter handler, as described in Parameter Validation. 関数を返すかどうかは、引き続き実行が許可された、するとerrnoに設定されているEINVALします。If execution is allowed to continue, the functions return _NLSCMPERROR and errno is set to EINVAL.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tcsncmp_tcsncmp strncmpstrncmp _mbsnbcmp_mbsnbcmp wcsncmpwcsncmp
_tcsncmp_l_tcsncmp_l strncmpstrncmp _mbsnbcml_mbsnbcml wcsncmpwcsncmp

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_mbsnbcmp_mbsnbcmp <mbstring.h><mbstring.h>
_mbsnbcmp_l_mbsnbcmp_l <mbstring.h><mbstring.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

Example

// 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 );
}

出力Output

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

関連項目See also

文字列操作String Manipulation
_mbsnbcat、_mbsnbcat_l_mbsnbcat, _mbsnbcat_l
_mbsnbicmp、_mbsnbicmp_l_mbsnbicmp, _mbsnbicmp_l
strncmp、wcsncmp、_mbsncmp、_mbsncmp_lstrncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
ロケールLocale
マルチバイト文字のシーケンスの解釈Interpretation of Multibyte-Character Sequences