次の方法で共有


strcoll 系関数

strcoll と wcscoll の各関数は、現在使用中のロケールのコード ページの LC_COLLATE カテゴリの設定に基づいて、2 文字列を比較します。 _mbscoll の関数は、現在使用中のマルチバイト コード ページに従って 2 桁の文字列を比較します。 文字セットの順序は、現在のコード ページの辞書式の順序とこの相違点の違いを比較の対象である場合文字列比較に coll 関数を使用します。 文字列が等しいかどうかのみをテストするために cmp の対応する関数を使用します。

系関数

SBCS

Unicode

MBCS

説明

wcscoll

_mbscoll

2 桁の文字列を照合します。

_stricoll

_wcsicoll

_mbsicoll

照合します。2 の文字列 (大文字と小文字を区別しない) を

_strncoll

_wcsncoll

_mbsncoll

2 番目の文字列の count の最初の文字を照合します。

_strnicoll

_wcsnicoll

_mbsnicoll

照合します。2 の文字列 (大文字と小文字を区別しない) の count の最初の文字を

解説

これらの関数 (strcoll、stricoll、_strncollと _strnicoll) のバイト文字 (SBCS) のバージョンは、現在のロケールの LC_COLLATE カテゴリの設定に基づいて string1string2 とを比較します。 これらの関数は strcmp の対応する関数と strcoll 関数が照合順序を提供するロケールのコード ページ情報を使用することです。 文字セットの順序が辞書式の順序と異なるロケールの文字列比較では、strcoll 関数は strcmp の対応する関数の代わりに使用する必要があります。 LC_COLLATE の詳細については、「setlocale、_wsetlocale」を参照してください。

対応するコード ページと文字セットでは、文字セットの文字の順序が辞書式の順序と異なることがあります。 "C" ロケールでは、前述とは異なり、ASCII 文字セットの文字の順序が辞書式の文字の順序と同じです。 しかし、たとえば、ヨーロッパの一部のコード ページでは、文字 a (値 0x61) は文字セットで文字 'ä' (値 0xE4) の前にありますが、辞書式の順序では文字 'ä' が文字 'a' の前にあります。 このようなインスタンスで辞書式の比較を実行するには、strcmpではなく strcoll を使用します。 また、元の文字列の strxfrm を使用し、結果の文字列の strcmp を使用します。

ワイド文字 (Unicode) に対応するようにstrcoll、stricoll、_strncollと _strnicoll は、現在使用中のロケールのコード ページに従ってマルチバイト文字列を自動的に処理します。 ただし、これらの関数のマルチバイト文字の (MBCS) Version は、現在使用中のマルチバイト コード ページに従ってマルチバイト文字単位で文字列を照合します。

cmp 関数が単に文字列の等価性をテストするのに対して、coll 関数は比較のために文字列を辞書式に照合するため、coll 関数は cmp の対応するバージョンよりもかなり低速です。 したがって、coll 関数は、文字セットの順序は、現在のコード ページの辞書式の順序とこの相違点の違いを文字列比較のターゲットである場合のみ使用します。

参照

関連項目

ロケール

文字列操作 (CRT)

localeconv

_mbsnbcoll、_mbsnbcoll_l、_mbsnbicoll、_mbsnbicoll_l

setlocale、_wsetlocale

strcmp、wcscmp、_mbscmp

strncmp、wcsncmp、_mbsncmp、_mbsncmp_l

_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l

strxfrm、wcsxfrm、_strxfrm_l、_wcsxfrm_l