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.
Negative 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.
This function is not locale-sensitive, unlike wcscoll and wcsxfrm.
[edit] Example#include <stdio.h> #include <wchar.h> #include <locale.h> void demo(const wchar_t *lhs, const wchar_t *rhs, int sz) { int rc = wcsncmp(lhs, rhs, sz); if(rc == 0) printf("First %d characters of [%ls] equal [%ls]\n", sz, lhs, rhs); else if(rc < 0) printf("First %d characters of [%ls] precede [%ls]\n", sz, lhs, rhs); else if(rc > 0) printf("First %d characters of [%ls] follow [%ls]\n", sz, lhs, rhs); } int main(void) { const wchar_t *str1 = L"ìë íì¸ì"; const wchar_t *str2 = L"ìë í ê°ììì¤"; setlocale(LC_ALL, "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] References
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