wcscoll() - 言語照合ストリングの比較

標準

標準/拡張機能 C/C++ 依存項目

ISO C 改訂
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3

両方  

形式

#include <wchar.h>

int wcscoll(const wchar_t *wcs1, const wchar_t *wcs2);

機能説明

wcs1 が指すワイド文字ストリングと wcs2 が指すワイド文字ストリングを比較します。これらは両方とも現行ロケールの LC_COLLATE カテゴリーに対して 適切なものと解釈されます。

戻り値

wcscoll() は、wcs1 が指すワイド文字ストリングが、wcs2 が指すワイド文字ストリングより大きいか、等しいか、または小さいかによって、この両方のワイド文字ストリングが現行ロケールの LC_COLLATE カテゴリーに対して適切なものと解釈されたときに、ゼロより大きいか、等しいか、または小さい整数を戻します。

wcscoll() は、wcscmp() とは違います。wcscoll() 関数は、LC_COLLATE カテゴリーによって制御された言語照合規則に基づいて、2 つのワイド文字ストリング間の比較を行います。一方、wcscmp() は、ワイド文字コード間の比較を行います。

wcscoll() は、errno を設定してエラー条件を示しますが、エラーを示す戻り値がありません。エラーをチェックするために、errno をゼロに設定してから、wcscoll() からの戻り時にチェックするようにしてください。errno がゼロ以外なら、エラーが発生しています。

EILSEQ エラーを設定して、wcs1 引数 または wcs2 引数に照合シーケンスの範囲以外の文字が入って いるかどうかを示すことができます。

注: ISO/C Multibyte Support Extensions は、wcscoll() 関数がエラーと一緒に戻るかどうかを示しません。

CELEBW07
⁄* CELEBW07 *⁄                                   
#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("¥"%ls¥" is identical to ¥"%ls¥"¥n", wcs1, wcs2);
   else if ( result < 0)                                                        
      printf("¥"%ls¥" is less than ¥"%ls¥"¥n", wcs1, wcs2);
   else                                                                         
      printf("¥"%ls¥" is greater than ¥"%ls¥"¥n", wcs1, wcs2);
}                                                                               
出力:
"first_wide_string" is less than "second_wide_string"

関連情報