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() 的返回值
含义
小于 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);
}

相关信息