Syntax
#include <wchar.h> int wcscoll(const wchar_t *wcstr1, const wchar_t *wcstr2);Description
wcscoll compares the wide-character string pointed to by wcstr1 to the wide-character string pointed to by wcstr2, both interpreted according to the information in the LC_COLLATE category of the current locale.
wcscoll differs from the wcscmp function. wcscoll performs a comparison between two wide-character strings based on language collation rules as controlled by the LC_COLLATE category. In contrast, wcscmp performs a wide-character code to wide-character code comparison. If a string will be collated many times, as when inserting an entry into a sorted list, wcsxfrm followed by wcscmp can be more efficient.
wcscoll returns an integer value indicating the relationship between the strings, as listed below: compact break=fit.
Value
If wcs1 or wcs2 contain characters outside the domain of the collating sequence, wcscoll sets errno to EILSEQ. If an error occurs, wcscoll sets errno to a nonzero value. There is no error return value.
This example uses wcscoll to compare two wide-character strings.
#include <wchar.h>#include <locale.h> #include <stdio.h> #include <stdlib.h> int main(void) { wchar_t *wcs1 = L"A wide string"; wchar_t *wcs2 = L"a wide string"; int result; if (NULL == setlocale(LC_ALL, "Ja_JP")) { printf("setlocale failed.\n"); exit(EXIT_FAILURE); } result = wcscoll(wcs1, wcs2); if (0 == result) printf("\"%ls\" is identical to \"%ls\"\n", wcs1, wcs2); else if (0 > result) printf("\"%ls\" is less than \"%ls\"\n", wcs1, wcs2); else printf("\"%ls\" is greater than \"%ls\"\n", wcs1, wcs2); return 0; /**************************************************************************** The output should be similar to : "A wide string" is identical to "a wide string" ****************************************************************************/ }Related Information