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()
函数返回一个整数值,指示字符串之间的关系,如下所示:
值 | 含义 |
---|---|
小于 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);
}