std::wcsncmp

来自cppreference.com
< cpp‎ | string‎ | wide
在标头 <cwchar> 定义
int wcsncmp(constwchar_t* lhs, constwchar_t* rhs, std::size_t count );

比较二个空终止宽字符串的至多 count 个字符。按字典序进行比较。

结果的正负号是被比较的字符串中首对相异的宽字符的值间的差的正负号。

lhsrhs 不是指向空终止字符串的指针则行为未定义。

目录

[编辑]参数

lhs, rhs - 指向要比较的空终止宽字符串的指针
count - 要比较的最大字符数

[编辑]返回值

若字典序中 lhs 先出现于 rhs 则为负值。

lhsrhs 比较相等则为零。

若字典序中 lhs 后出现于 rhs 则为负值。

[编辑]示例

#include <clocale>#include <cwchar>#include <iostream>#include <locale>   void demo(constwchar_t* lhs, constwchar_t* rhs, int sz){int rc = std::wcsncmp(lhs, rhs, sz);if(rc ==0)std::wcout<<"["<< lhs <<"] 的前 "<< sz <<" 个字符等于 ["<< rhs <<"]\n";elseif(rc <0)std::wcout<<"["<< lhs <<"] 的前 "<< sz <<" 个字符前驱于 ["<< rhs <<"]\n";elseif(rc >0)std::wcout<<"["<< lhs <<"] 的前 "<< sz <<" 个字符后继于 ["<< rhs <<"]\n";}   int main(){constwchar_t str1[]= L"안녕하세요";constwchar_t str2[]= L"안녕히 가십시오";   std::setlocale(LC_ALL, "en_US.utf8");std::wcout.imbue(std::locale("en_US.utf8")); demo(str1, str2, 5); demo(str2, str1, 8); demo(str1, str2, 2);}

输出:

[안녕하세요] 的前 5 个字符前驱于 [안녕히 가십시오] [안녕히 가십시오] 的前 8 个字符后继于 [안녕하세요] [안녕하세요] 的前 2 个字符等于 [안녕히 가십시오]

[编辑]参阅

比较两个字符串的一定量字符
(函数)[编辑]
比较两个宽字符串
(函数)[编辑]
比较来自两个数组的一定量宽字符
(函数)[编辑]
按照当前本地环境比较两个宽字符串
(函数)[编辑]
wcsncmp 的 C 文档
close