在线文档教程
C++
字符串 | Strings

std::wmemcmp

STD:Wmemcmp

Defined in header
int wmemcmp( const wchar_t* lhs, const wchar_t* rhs, std::size_t count

比较第一个count所指向的宽字符数组的宽字符。lhsrhs.比较是按字典顺序进行的。

结果的符号是第一对宽字符的值之间的差异的符号,这些字符在所比较的数组中不同。

如果count等于零,函数什么也不做。

参数

lhs, rhs-pointers to the wide character arrays to compare
count-number of wide characters to examine

返回值

中的第一个不同的宽字符的值。lhs中的相应宽字符的值。rhs*lhs先于rhs按字典顺序排列。

​0​如果所有count宽特性lhsrhs是平等的。

中的第一个不同的宽字符的值。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

二次

另见

wcscmpcompares two wide strings (function)
memcmpcompares two buffers (function)
wcsncmpcompares a certain amount of characters from two wide strings (function)

c wmemcmp文档

© cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

http://en.cpPreference.com/w/cpp/string/Wide/wmemcmp