次の方法で共有


_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

_strncoll

_mbsnbcoll

_wcsncoll

_tcsncoll_l

_strncoll、_wcsncoll、_mbsncoll、_strncoll_l、_wcsncoll_l、_mbsncoll_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>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

参照

関連項目

文字列操作 (CRT)

_mbsnbcat、_mbsnbcat_l

_mbsnbcmp、_mbsnbcmp_l

_mbsnbicmp、_mbsnbicmp_l

strcoll 系関数

strncmp、wcsncmp、_mbsncmp、_mbsncmp_l

_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l