_mbsnbcoll
, _mbsnbcoll_l
, _mbsnbicoll
, _mbsnbicoll_l
マルチバイト コード ページの情報を使用して、2 つのマルチバイト文字列の n
バイトを比較します。
重要
この API は、Windows ランタイムで実行するアプリケーションでは使用できません。 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。
構文
int _mbsnbcoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbcoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
int _mbsnbicoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbicoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
パラメーター
string1
, string2
比較する文字列。
count
比較するバイト数。
locale
使用するロケール。
戻り値
戻り値は string1
と string2
の部分文字列の関係を示します。
戻り値 | 説明 |
---|---|
< 0 | string1 の部分文字列が string2 の部分文字列より小さい。 |
0 | string1 の部分文字列は string2 の部分文字列と同じ。 |
> 0 | string1 の部分文字列が string2 の部分文字列より大きい。 |
パラメーターの検証で説明されているように、無効なパラメーター ハンドラーが呼び出される場合またはNULL
count
string2
それより大きいINT_MAX
場合string1
。 実行の継続が許可された場合、これらの関数は _NLSCMPERROR
を返し、errno
を EINVAL
に設定します。 _NLSCMPERROR
を使用するには、String.h または Mbstring.h をインクルードします。
解説
これらの関数は、最長で count
と string1
の先頭 string2
バイトを比較し、得られた string1
の部分文字列と string2
の部分文字列の関係を示す値を返します。 部分文字列の最後の string1
バイトまたは string2
先頭バイトの場合、比較には含まれません。これらの関数は、部分文字列内の完全な文字のみを比較します。 _mbsnbicoll
は _mbsnbcoll
の大文字と小文字を区別しないバージョンです。 _mbsnbcmp
と _mbsnbicmp
のように、_mbsnbcoll
と _mbsnbicoll
は、現在使用中のマルチバイト コード ページで指定された辞書式の順序に従って 2 個のマルチバイト文字列を照合します。
一部のコード ページおよびそれに対応する文字セットでは、文字セットの文字の順序が辞書式の順序と異なる場合があります。 "C" ロケールでは、ASCII 文字セット内の文字の順序は、文字の辞書順と同じです。 しかし、たとえば、ヨーロッパの一部のコード ページでは、文字 a (値 0x61) は文字セットで文字 'ä' (値 0xE4) の前にありますが、辞書式の順序では文字 'ä' が文字 'a' の前にあります。 このような場合にバイトの文字列の辞書式の比較を実行するには、_mbsnbcoll
ではなく _mbsnbcmp
を使用してください。文字列の等価性のみを検証するには、_mbsnbcmp
を使用します。
coll
関数が単に文字列の等価性をテストするのに対して、cmp
関数は比較のために文字列を辞書式に照合するため、coll
関数は cmp
の対応するバージョンよりもかなり低速です。 したがって、関数は coll
、現在のコード ページで文字セットの順序と辞書文字の順序に違いがあり、この違いが比較の対象である場合にのみ使用する必要があります。
出力値は、ロケールの LC_CTYPE
カテゴリ設定の設定によって影響を受けます。 詳細については、setlocale
を参照してください。 _l
サフィックスが付いていないこれらの関数のバージョンでは、このロケールに依存する動作に現在のロケールを使用します。_l
サフィックスが付いているバージョンは、渡されたロケール パラメーターを代わりに使用する点を除いて同じです。 詳細については、「 Locale」を参照してください。
既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン | _UNICODE と _MBCS が定義されていない |
_MBCS が定義されている |
_UNICODE が定義されている |
---|---|---|---|
_tcsncoll |
_strncoll |
_mbsnbcoll |
_wcsncoll |
_tcsncoll_l |
_strncoll_l |
_mbsnbcoll_l |
_wcsncoll_l |
_tcsnicoll |
_strnicoll |
_mbsnbicoll |
_wcsnicoll |
_tcsnicoll_l |
_strnicoll_l |
_mbsnbicoll_l |
_wcsnicoll_l |
必要条件
ルーチンによって返される値 | 必須ヘッダー |
---|---|
_mbsnbcoll |
<mbstring.h> |
_mbsnbcoll_l |
<mbstring.h> |
_mbsnbicoll |
<mbstring.h> |
_mbsnbicoll_l |
<mbstring.h> |
互換性の詳細については、「 Compatibility」を参照してください。
関連項目
文字列操作
_mbsnbcat
, _mbsnbcat_l
_mbsnbcmp
, _mbsnbcmp_l
_mbsnbicmp
, _mbsnbicmp_l
strcoll
関数
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, _wcsnicmp_l
, _mbsnicmp_l
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示