フォーマット
#include <wchar.h> int wcscoll (const wchar_t *wcs1, const wchar_t *wcs2);
言語レベル: XPG4
スレッド・セーフ: はい。
ロケール依存: コンパイル・コマンドで LOCALETYPE(*LOCALE) が指定される場合、この関数の振る舞いは、現行ロケールの LC_COLLATE カテゴリーの影響を 受ける可能性があります。また、コンパイル・コマンドで LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) が指定される場合、この関数の振る舞いは、 現行ロケールの LC_UNI_COLLATE カテゴリーの影響も受ける可能性があります。 この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
ワイド文字関数: 詳細については、ワイド文字 を参照してください。
説明
wcscoll() 関数は、 wcs1 および wcs2 が指すワイド文字ストリングを比較します。 これらは両方とも現行ロケールの LC_COLLATE カテゴリー (または、UNICODE LOCALETYPE が指定されている場合は LC_UNI_COLLATE カテゴリー) に対して適切なものと解釈されます。
戻り値
wcscoll() 関数は、ストリング間の関係を示す次のような整数値を戻します。
wcs1 または wcs2 に、 照合シーケンスのドメイン外の文字が含まれる場合、wcscoll() 関数は errno を EINVAL に設定します。エラーが発生した場合、wcscoll() 関数は errno を非ゼロ値に設定します。エラーの戻り値はありません。
wcscoll() の使用例
この例はデフォルト・ロケールを使用しています。
#include <stdio.h> #include <wchar.h> int main(void) { int result; wchar_t *wcs1 = L"first_wide_string"; wchar_t *wcs2 = L"second_wide_string"; result = wcscoll(wcs1, wcs2); if ( result == 0) printf("¥"%S¥" is identical to ¥"%S¥"¥n", wcs1, wcs2); else if ( result < 0) printf("¥"%S¥" is less than ¥"%S¥"¥n", wcs1, wcs2); else printf("¥"%S¥" is greater than ¥"%S¥"¥n", wcs1, wcs2); }
関連情報