wcscoll ()- 語言對照字串比較
格式
#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()
函數會傳回整數值,指出字串之間的關係,如下所示:
Value | 意義 |
---|---|
小於 0 | wcs1 小於 wcs2 |
0 | wcs1 相當於 wcs2 |
大於 0 | wcs1 大於 wcs2 |
如果 wcs1 或 wcs2 包含對照順序網域以外的字元,則 wcscoll()
函數會將 errno 設為 EINVAL。 如果發生錯誤, wcscoll()
函數會將 errno 設為非零值。 沒有錯誤回覆值。
範例
此範例使用預設語言環境。
#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);
}