wcscoll
Defined in header
<wchar.h>
|
||
int
wcscoll
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs
)
;
|
(since C95) | |
Compares two null-terminated wide strings according to the collation order defined by the LC_COLLATE category of the currently installed locale.
Parameters
lhs, rhs | - | pointers to the null-terminated wide strings to compare |
Return value
Negative value if
lhs
is
less than
(precedes)
rhs
.
0
if
lhs
is
equal to
rhs
.
Positive value if
lhs
is
greater than
(follows)
rhs
.
Notes
Collation order is the dictionary order: the position of the letter in the national alphabet (its equivalence class ) has higher priority than its case or variant. Within an equivalence class, lowercase characters collate before their uppercase equivalents and locale-specific order may apply to the characters with diacritics. In some locales, groups of characters compare as single collation units . For example, "ch" in Czech follows "h" and precedes "i" , and "dzs" in Hungarian follows "dz" and precedes "g" .
Example
#include <stdio.h> #include <wchar.h> #include <locale.h> void try_compare(const wchar_t* p1, const wchar_t* p2) { if(wcscoll(p1, p2) < 0) printf("%ls before %ls\n", p1, p2); else printf("%ls before %ls\n", p2, p1); } int main(void) { setlocale(LC_ALL, "en_US.utf8"); printf("In the American locale: "); try_compare(L"hrnec", L"chrt"); setlocale(LC_COLLATE, "cs_CZ.utf8"); printf("In the Czech locale: "); try_compare(L"hrnec", L"chrt"); setlocale(LC_COLLATE, "en_US.utf8"); printf("In the American locale: "); try_compare(L"år", L"ängel"); setlocale(LC_COLLATE, "sv_SE.utf8"); printf("In the Swedish locale: "); try_compare(L"år", L"ängel"); }
Possible output:
In the American locale: chrt before hrnec In the Czech locale: hrnec before chrt In the American locale: ängel before år In the Swedish locale: år before ängel
References
- C11 standard (ISO/IEC 9899:2011):
-
- 7.29.4.4.2 The wcscoll function (p: 433-434)
- C99 standard (ISO/IEC 9899:1999):
-
- 7.24.4.4.2 The wcscoll function (p: 379-380)
See also
compares two strings in accordance to the current locale
(function) |
|
(C95)
|
transform a wide string so that wcscmp would produce the same result as wcscoll
(function) |
(C95)
|
compares two wide strings
(function) |
C++ documentation
for
wcscoll
|