首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

strcoll

在头文件<string.h>中定义

?

?

int strcoll(const char * lhs,const char * rhs);

?

?

根据LC_COLLATE类别定义的当前语言环境比较两个以null结尾的字节字符串。

参数

lhs,rhs

-

指向以空字符结尾的字节字符串进行比较的指针

返回值

如果lhs小于(之前)rhs,则为负值。

如果lhs等于rhs,则返回0。

如果lhs大于(接下来)rhs,则为正值。

注意

整理顺序是字典顺序:字母表(其等价类)中字母的位置比其案例或变体具有更高的优先级。 在等价类中,小写字母在其大写等价和特定于语言环境的顺序可能适用于带有变音符的字符之前进行整理。 在某些语言环境中,字符组会作为单个归类单位进行比较。 例如,捷克语中的“ch”跟在“h”之后,在“i”之前,匈牙利语中的“dzs”跟在“dz”之后并且在“g”之前。

代码语言:javascript
复制
#include <stdio.h>
#include <string.h>
#include <locale.h>
 
int main(void)
{
    setlocale(LC_COLLATE, "cs_CZ.iso88592");
 
    const char* s1 = "hrnec";
    const char* s2 = "chrt";
 
    printf("In the Czech locale: ");
    if(strcoll(s1, s2) < 0)
         printf("%s before %s\n", s1, s2);
    else
         printf("%s before %s\n", s2, s1);
 
    printf("In lexicographical comparison: ");
    if(strcmp(s1, s2) < 0)
         printf("%s before %s\n", s1, s2);
    else
         printf("%s before %s\n", s2, s1);
}

输出:

代码语言:javascript
复制
In the Czech locale: hrnec before chrt
In lexicographical comparison: chrt before hrnec

参考

  • C11标准(ISO / IEC 9899:2011):
    • 7.24.4.3 strcoll函数(p:366)
  • C99标准(ISO / IEC 9899:1999):
    • 7.21.4.3 strcoll函数(p:329)
  • C89 / C90标准(ISO / IEC 9899:1990):
    • 4.11.4.3 strcoll函数

扩展内容

wcscoll(C95)

根据当前语言环境(函数)比较两个宽字符串

strxfrm

转换一个字符串,以便strcmp产生与strcoll(function)相同的结果

wcsxfrm(C95)

转换宽字符串以使wcscmp产生与wcscoll(函数)相同的结果

STRCMP

比较两个字符串(功能)

| strcoll的C ++文档 |

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com