_stricoll, _wcsicoll, _mbsicoll, _stricoll_l, _wcsicoll_l, _mbsicoll_l
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _stricoll, _wcsicoll, _mbsicoll, _stricoll_l, _wcsicoll_l, _mbsicoll_l.
Compares strings by using locale-specific information.
Important
_mbsicoll
and _mbsicoll_l
cannot be used in applications that execute in the Windows Runtime. For more information, see CRT functions not supported with /ZW.
Syntax
int _stricoll(
const char *string1,
const char *string2
);
int _wcsicoll(
const wchar_t *string1,
const wchar_t *string2
);
int _mbsicoll(
const unsigned char *string1,
const unsigned char *string2
);
int _stricoll_l(
const char *string1,
const char *string2,
_locale_t locale
);
int _wcsicoll_l(
const wchar_t *string1,
const wchar_t *string2,
_locale_t locale
);
int _mbsicoll_l(
const unsigned char *string1,
const unsigned char *string2,
_locale_t locale
);
Parameters
string1, string2
Null-terminated strings to compare.
locale
The locale to use.
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 |
_NLSCMPERROR |
An error occurred. |
Each of these functions returns _NLSCMPERROR
. To use _NLSCMPERROR
, include either STRING.H
or MBSTRING.H
. _wcsicoll
can fail if either string1
or string2
contains wide-character codes outside the domain of the collating sequence. When an error occurs, _wcsicoll
may set errno
to EINVAL
. To check for an error on a call to _wcsicoll
, set errno
to 0 and then check errno
after calling _wcsicoll
.
Remarks
Each of these functions performs a case-insensitive 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.
_stricmp
differs from _stricoll
in that the _stricmp
comparison is affected by LC_CTYPE
, whereas the _stricoll
comparison is according to the LC_CTYPE
and LC_COLLATE
categories of the locale. For more information on the LC_COLLATE
category, see setlocale and Locale Categories. The versions of these functions without the _l
suffix use the current locale; the versions with the _l
suffix are identical except that they use the locale passed in instead. For more information, see Locale.
All of these functions validate their parameters. If either string1
or string2
are NULL
pointers, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, these functions return _NLSCMPERROR
and set errno
to EINVAL
.
Generic-Text Routine Mappings
TCHAR.H routine | _UNICODE & _MBCS not defined | _MBCS defined | _UNICODE defined |
---|---|---|---|
_tcsicoll |
_stricoll |
_mbsicoll |
_wcsicoll |
Requirements
Routine | Required header |
---|---|
_stricoll , _stricoll_l |
<string.h> |
_wcsicoll , _wcsicoll_l |
<wchar.h>, <string.h> |
_mbsicoll , _mbsicoll_l |
<mbstring.h> |
For additional compatibility information, see Compatibility.
.NET Framework Equivalent
See Also
Locale
String Manipulation
strcoll Functions
localeconv
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
setlocale, _wsetlocale
strcmp, wcscmp, _mbscmp
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l