strcoll, _stricoll, _mbscoll, _mbsicoll, wcscoll, _wcsicoll
Go Up to string.h Index
Header File
string.h, mbstring.h
Category
Memory and String Manipulation Routines
Prototype
int strcoll(const char *s1, const char *s2); int wcscoll(const wchar_t *s1, const wchar_t *s2); int _stricoll(const char *s1, const char *s2); int _wcsicoll(const wchar_t *s1, wconst_t char *s2); int _mbscoll(const unsigned char *s1, const unsigned char *s2); int _mbsicoll(const unsigned char *s1, const unsigned char *s2);
Description
Compares two strings.
strcoll compares the string pointed to by s1 to the string pointed to by s2, according to the current locale's LC_COLLATE category.
_stricoll performs like strcoll but is not case-sensitive.
Note:
The real collation (_lstricoll) returns -1, 0 or 1, whereas _stricoll does a codepoint comparison, and returns < 0, 0 or > 0.
_stricoll
does not compare string according to the current locale's LC_COLLATE category. _stricoll gives you a stricmp. The required collation is obtained by calling _lstricoll, or just plain stricoll (which maps to _lstricoll).The real collation (_lstricoll) returns -1, 0 or 1, whereas _stricoll does a codepoint comparison, and returns < 0, 0 or > 0.
Return Value
less than s2 |
< 0 |
the same as s2 |
== 0 |
greater than s2 |
> 0 |
Example
#include <stdio.h> #include <string.h> int main(void) { char *two = "International"; char *one = "Borland"; int check; check = strcoll(one, two); if (check == 0) printf("The strings are equal\n"); if (check < 0) printf("%s comes before %s\n", one, two); if (check > 0) printf("%s comes before %s\n", two, one); return 0; }
Portability
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
strcoll |
+ |
+ |
+ |
+ |
_stricoll |
+ |
|||
_mbscoll |
+ |
|||
_mbsicoll |
+ |
|||
wcscoll |
+ |
+ |
+ | |
_wcsicoll |
+ |