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() 函數會比較 wcs1wcs2所指向的寬字元字串,這兩種解譯為適用於現行語言環境的 LC_COLLATE 種類 (如果指定 UNICODE LOCALETYPE ,則為 LC_UNI_COLLATE 種類)。

回覆值

wcscoll() 函數會傳回整數值,指出字串之間的關係,如下所示:

表 1. wcscoll() 的回覆值
Value 意義
小於 0 wcs1 小於 wcs2
0 wcs1 相當於 wcs2
大於 0 wcs1 大於 wcs2

如果 wcs1wcs2 包含對照順序網域以外的字元,則 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);
}

相關資訊