_mbsnbcoll、_mbsnbcoll_l、_mbsnbicoll、_mbsnbicoll_l
マルチバイト コード ページの情報を使用して 2 個のマルチバイト文字列の n バイトを比較します。
重要 |
---|
この API は、Windows のランタイムで実行するアプリケーションで使用することはできません。詳細については、でサポート /ZW 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 |
string2 部分文字列と同じstring1 の部分文字列。 |
> 0 |
string2 部分文字列より大きいstring1 部分文字列。 |
string1 か string2 が NULL の場合、または count が INT_MAXより大きい場合、無効なパラメーター ハンドラーが パラメーターの検証に説明されているように、開始されます。実行の継続が許可された場合、これらの関数は _NLSCMPERROR を返し、errno を EINVAL に設定します。_NLSCMPERRORを使用するには、String.h か、を含めます。
解説
これらの関数は、最大で、string1 と string2 の count の先頭バイトと応答の string1 結果の部分文字列と string2間の関係を示す値照合します。string1 または string2 の部分文字列の最後のバイトが先行バイトの場合、比較に含まれません; これらの関数は、部分文字列の完全な文字だけを比較します。_mbsnbicoll は _mbsnbcollのケースと小文字を区別しないバージョンです。_mbsnbcmp と _mbsnbicmpのように、_mbsnbcoll と _mbsnbicoll は、現在使用中のマルチバイト コード ページ で指定された辞書式の順序に従って 2 個のマルチバイト文字列を照合します。
対応するコード ページと文字セットに対して、文字セットの文字の順序が辞書式の順序と異なる場合があります。15 "B" ロケールでは、これは該当しません。: ASCII 文字セットの文字の順序が辞書式の順序と同じです。ただし、特定のヨーロッパのコード ページ、たとえば、文字" a "の" (値 0x61) 文字セットの文字 "ä" (値 0xE4)、文字 "ä" に辞書式に直前の文字 "a" の前に発生します。このようなインスタンスでバイトの文字列の辞書式の比較を実行するには、_mbsnbcmpではなく _mbsnbcoll を使用してください; 文字列の等価性がある場合にのみ検証するには、_mbsnbcmpを使用します。
coll 関数は比較のための文字列を辞書式に照合するため、cmp 関数が文字列の等価性単にテストしますが、coll 関数は cmp の対応するバージョンよりもかなり低速です。したがって、coll の関数は、文字セットの順序、現在のコード ページの辞書式の順序とこの相違点の違いが比較の対象である場合のみ使用します。
出力値は、ロケールの LC_CTYPE カテゴリの設定で決まります。詳細については、「setlocale」を参照してください。_l サフィックスが付いていないこの関数のバージョンでは、このロケールに依存する動作に現在のロケールを使用します。_l サフィックスが付いているバージョンは、渡されたロケール パラメーターを代わりに使用する点を除いて同じです。詳細については、「ロケール」を参照してください。
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_tcsncoll |
_mbsnbcoll |
||
_tcsncoll_l |
_strncoll、_wcsncoll、_mbsncoll、_strncoll_l、_wcsncoll_l、_mbsncoll_l |
_mbsnbcoll_l |
|
_tcsnicoll |
_mbsnbicoll |
||
_tcsnicoll_l |
_mbsnbicoll_l |
必要条件
ルーチン |
必須ヘッダー |
---|---|
_mbsnbcoll |
<mbstring.h> |
_mbsnbcoll_l |
<mbstring.h> |
_mbsnbicoll |
<mbstring.h> |
_mbsnbicoll_l |
<mbstring.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
参照
関連項目
strncmp、wcsncmp、_mbsncmp、_mbsncmp_l
_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l