strcoll, wcscoll, _mbscoll
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

strcoll, wcscoll, _mbscoll

Compare strings using locale-specific information.

int strcoll(
   const char *string1,
   const char *string2 
int wcscoll(
   const wchar_t *string1,
   const wchar_t *string2 
int _mbscoll(
   const unsigned char *string1,
   const unsigned char *string2 


string1, string2
Null-terminated strings to compare.

Return Value

Each of these functions returns a value indicating the relationship of string1 to string2, as follows.

Return value Relationship of string1 to string2
< 0 string1 less than string2
0 string1 identical to string2
> 0 string1 greater than string2

Each of these functions returns _NLSCMPERROR on an error. To use _NLSCMPERROR, include either STRING.H or MBSTRING.H. wcscoll can fail if either string1 or string2 contains wide-character codes outside the domain of the collating sequence. When an error occurs, wcscoll may set errno to EINVAL. To check for an error on a call to wcscoll, set errno to 0 and then check errno after calling wcscoll.


Each of these functions performs a case-sensitive comparison of string1 and string2 according to the code page currently in use. These functions should be used only when there is a difference between the character set order and the lexicographic character order in the current code page and this difference is of interest for the string comparison.

Generic-Text Routine Mappings

TCHAR.H routine _UNICODE & _MBCS not defined _MBCS defined _UNICODE defined
_tcscoll strcoll _mbscoll wcscoll


Routine Required header Compatibility
strcoll <string.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
wcscoll <wchar.h>, <string.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
_mbscoll <mbstring.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.

See Also

Locale Routines, String Manipulation Routines | strcoll Functions Overview | localeconv | _mbsnbcoll | setlocale | strcmp | _stricmp | strncmp | _strnicmp | strxfrm | Run-Time Routines and .NET Framework Equivalents

© 2016 Microsoft