std::wmemcmp
STD:Wmemcmp
Defined in header | | |
---|---|---|
int wmemcmp( const wchar_t* lhs, const wchar_t* rhs, std::size_t count | | |
比较第一个count
所指向的宽字符数组的宽字符。lhs
和rhs
.比较是按字典顺序进行的。
结果的符号是第一对宽字符的值之间的差异的符号,这些字符在所比较的数组中不同。
如果count
等于零,函数什么也不做。
参数
lhs, rhs | - | pointers to the wide character arrays to compare |
---|---|---|
count | - | number of wide characters to examine |
返回值
中的第一个不同的宽字符的值。lhs
中的相应宽字符的值。rhs
*lhs
先于rhs
按字典顺序排列。
0
如果所有count
宽特性lhs
和rhs
是平等的。
中的第一个不同的宽字符的值。lhs
中的相应宽字符的值。rhs
*rhs
先于lhs
按字典顺序排列。
注记
此函数不区分区域设置,也不注意wchar_t
它检查的对象:NULL和无效的宽字符也进行了比较。
例
二次
#include <iostream>
#include <string>
#include <cwchar>
#include <locale>
#include <clocale>
void demo(const wchar_t* lhs, const wchar_t* rhs, std::size_t sz)
{
std::wcout << std::wstring(lhs, sz
int rc = std::wmemcmp(lhs, rhs, sz
if(rc == 0)
std::wcout << " compares equal to ";
else if(rc < 0)
std::wcout << " precedes ";
else if(rc > 0)
std::wcout << " follows ";
std::wcout << std::wstring(rhs, sz) << " in lexicographical order\n";
}
int main()
{
std::setlocale(LC_ALL, "en_US.utf8"
std::wcout.imbue(std::locale("en_US.utf8")
wchar_t a1[] = {L'α',L'β',L'γ'};
constexpr std::size_t sz = sizeof a1 / sizeof *a1;
wchar_t a2[sz] = {L'α',L'β',L'δ'};
demo(a1, a2, sz
demo(a2, a1, sz
demo(a1, a1, sz
}
二次
可能的产出:
二次
αβγ precedes αβδ in lexicographical order
αβδ follows αβγ in lexicographical order
αβγ compares equal to αβγ in lexicographical order
二次
另见
wcscmp | compares two wide strings (function) |
---|---|
memcmp | compares two buffers (function) |
wcsncmp | compares a certain amount of characters from two wide strings (function) |
c wmemcmp文档
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。