C

wcscmp

wcscmp

在头文件中定义
int wcscmp(const wchar_t * lhs,const wchar_t * rhs);(自C95以来)

按字典顺序比较两个以空字符结尾的宽字符串。

结果的符号是所比较的字符串中第一对宽字符值不同的标志。

如果lhsrhs不是指向以空字符结尾的宽字符串的指针,行为是未定义的。

参数

lhs,rhs-指向以空字符结尾的宽字符串进行比较的指针

返回值

如果以字典顺序lhs出现,则为负值rhs

零如果lhsrhs比较相等。

如果按字典顺序lhs出现,则为正值rhs

注意

与函数不同wcscoll,此函数不是区域设置敏感的,并且当来自不同Unicode块的字符一起使用时或当代码单元的顺序与任何排序顺序不匹配时,顺序可能无意义。

示例

#include <wchar.h> #include <stdio.h> #include <locale.h> void demo(const wchar_t* lhs, const wchar_t* rhs) { int rc = wcscmp(lhs, rhs setlocale(LC_ALL, "en_US.utf8" if(rc == 0) printf("[%ls] equals [%ls]\n", lhs, rhs else if(rc < 0) printf("[%ls] precedes [%ls]\n", lhs, rhs else if(rc > 0) printf("[%ls] follows [%ls]\n", lhs, rhs } int main(void) { const wchar_t* string = L"どうもありがとうございます"; demo(string, L"どうも" demo(string, L"助かった" demo(string + 9, L"ありがとうございます" + 6 }

可能的输出:

[どうもありがとうございます] follows [どうも] [どうもありがとうございます] precedes [助かった] [ざいます] equals [ざいます]

参考

  • C11标准(ISO/IEC 9899:2011):

另请参阅

wcsncmp(C95)比较来自两个宽字符串(函数)的一定数量的字符
wmemcmp(C95)比较两个数组中的一定数量的宽字符(函数)
STRCMP比较两个字符串(函数)
wcscoll(C95)根据当前语言环境(函数)比较两个宽字符串

| 针对wcscmp |的C ++文档