wcscmp
wcscmp
在头文件 | | |
---|---|---|
int wcscmp(const wchar_t * lhs,const wchar_t * rhs); | | (自C95以来) |
按字典顺序比较两个以空字符结尾的宽字符串。
结果的符号是所比较的字符串中第一对宽字符值不同的标志。
如果lhs
或rhs
不是指向以空字符结尾的宽字符串的指针,行为是未定义的。
参数
lhs,rhs | - | 指向以空字符结尾的宽字符串进行比较的指针 |
---|
返回值
如果以字典顺序lhs
出现,则为负值rhs
。
零如果lhs
和rhs
比较相等。
如果按字典顺序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 ++文档