Compares at most count wide characters of two null-terminated wide strings. 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 strings being compared.
The behavior is undefined if lhs or rhs are not pointers to null-terminated strings.
[edit] Parameters lhs, rhs - pointers to the null-terminated wide strings to compare count - maximum number of characters to compare [edit] Return valueNegative value if lhs appears before rhs in lexicographical order.
Zero if lhs and rhs compare equal.
Positive value if lhs appears after rhs in lexicographical order.
[edit] Example#include <clocale> #include <cwchar> #include <iostream> #include <locale> void demo(const wchar_t* lhs, const wchar_t* rhs, int sz) { int rc = std::wcsncmp(lhs, rhs, sz); if (rc == 0) std::wcout << "First " << sz << " characters of [" << lhs << "] equal [" << rhs << "]\n"; else if (rc < 0) std::wcout << "First " << sz << " characters of [" << lhs << "] precede [" << rhs << "]\n"; else if (rc > 0) std::wcout << "First " << sz << " characters of [" << lhs << "] follow [" << rhs << "]\n"; } int main() { const wchar_t str1[] = L"ìë íì¸ì"; const wchar_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); }
Output:
First 5 characters of [ìë íì¸ì] precede [ìë í ê°ììì¤] First 8 characters of [ìë í ê°ììì¤] follow [ìë íì¸ì] First 2 characters of [ìë íì¸ì] equal [ìë í ê°ììì¤][edit] See also compares a certain number of characters from two strings
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4