Defined in header <cwchar> | ||
---|---|---|
int wmemcmp( const wchar_t* lhs, const wchar_t* rhs, std::size_t count ); |
Compares the first count
wide characters of the wide character arrays pointed to by lhs
and rhs
. The comparison is done lexicographically.
The sign of the result is the sign of the difference between the values of the first pair of wide characters that differ in the arrays being compared.
If count
is zero, the function does nothing.
lhs, rhs | - | pointers to the wide character arrays to compare |
count | - | number of wide characters to examine |
Negative value if the value of the first differing wide character in lhs
is less than the value of the corresponding wide character in rhs
: lhs
precedes rhs
in lexicographical order.
0
if all count
wide characters of lhs
and rhs
are equal.
Positive value if the value of the first differing wide character in lhs
is greater than the value of the corresponding wide character in rhs
: rhs
precedes lhs
in lexicographical order.
This function is not locale-sensitive and pays no attention to the values of the wchar_t
objects it examines: nulls as well as invalid wide characters are compared too.
#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); }
Possible output:
αβγ precedes αβδ in lexicographical order αβδ follows αβγ in lexicographical order αβγ compares equal to αβγ in lexicographical order
compares two wide strings (function) |
|
compares two buffers (function) |
|
compares a certain amount of characters from two wide strings (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/string/wide/wmemcmp