strcoll,_stricoll, _mbscoll, _mbsicoll, wcscoll, _wcsicoll
Nach oben zu string.h - Index
Header-Datei
string.h, mbstring.h
Kategorie
Routinen für Speicher- und String-Bearbeitung
Prototyp
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);
Beschreibung
Vergleicht zwei Strings.
strcoll vergleicht den String, auf den s1 zeigt, mit dem String, auf den s2 zeigt, entsprechend der Kategorie LC_COLLATE des aktuellen Gebietsschemas.
_stricoll arbeitet wie strcoll, berücksichtigt jedoch die Groß-/Kleinschreibung nicht.
Anmerkung: _stricoll vergleicht die Strings nicht gemäß der Kategorie LC_COLLATE des aktuellen Gebietsschemas. _stricoll gibt einen Wert des Typs stricmp zurück. Die erforderliche Sortierreihenfolge wird über einen Aufruf von _lstricoll oder einfach stricoll (die ihrerseits _lstricoll verwendet) erreicht.
Die die tatsächliche Sortierreihenfolge bestimmende Funktion (_lstricoll) gibt -1, 0 oder 1 zurück, während _stricoll auf Grundlage der lokalen Codeseite vergleicht und < 0, 0 oder > 0 zurückgibt.
Rückgabewert
kleiner als s2 |
< 0 |
s1 entspricht s2 |
== 0 |
größer als s2 |
> 0 |
Beispiel
#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;
}
Portabilität
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
strcoll |
+ |
+ |
+ |
+ |
_stricoll |
+ |
|||
_mbscoll |
+ |
|||
_mbsicoll |
+ |
|||
wcscoll |
+ |
+ |
+ | |
_wcsicoll |
+ |