funcionesstrcoll
Cada una de las funciones strcoll
y wcscoll
compara dos cadenas según la configuración de la categoría LC_COLLATE
de la página de código de configuración regional actualmente en uso. Cada una de las funciones _mbscoll
compara dos cadenas según la página de códigos multibyte actualmente en uso. Use las coll
funciones para comparaciones de cadenas cuando haya una diferencia entre el orden del juego de caracteres y el orden de caracteres lexicográficos en la página de códigos actual si la diferencia es de interés para la comparación. Use las funciones cmp
correspondientes para probar solo las cadenas que son iguales.
strcoll (Funciones)
SBCS | Unicode | MBCS | Descripción |
---|---|---|---|
strcoll |
wcscoll |
_mbscoll |
Intercalar dos cadenas |
_stricoll |
_wcsicoll |
_mbsicoll |
Intercalar dos cadenas (sin distinción entre mayúsculas y minúsculas) |
_strncoll |
_wcsncoll |
_mbsncoll |
Intercalar los primeros count caracteres de dos cadenas |
_strnicoll |
_wcsnicoll |
_mbsnicoll |
Intercalar los primeros count caracteres de dos cadenas (sin distinción entre mayúsculas y minúsculas) |
Comentarios
Las versiones de caracteres de byte único (SBCS) de estas funciones (strcoll
, stricoll
, _strncoll
y _strnicoll
) comparan string1
y string2
según la configuración de la categoría LC_COLLATE
de la configuración regional actual. Estas funciones se diferencian de las correspondientes funciones strcmp
en que las funciones strcoll
usan la información de la página de código de configuración regional que proporciona secuencias de intercalación. Para comparaciones de cadenas en configuraciones regionales en que el orden del juego de caracteres y el orden lexicográfico de los caracteres son diferentes, se deben usar las funciones strcoll
en lugar de las funciones strcmp
correspondientes. Para más información sobre LC_COLLATE
, consulte setlocale
.
En el caso de algunas páginas de códigos y los juegos de caracteres correspondientes, el orden de los caracteres del juego de caracteres puede no ser el mismo que el orden lexicográfico de los caracteres. En la configuración regional "C", no es el caso: el orden de los caracteres del juego de caracteres ASCII es el mismo que el orden lexicográfico de los caracteres. Sin embargo, en algunas páginas de códigos europeas, por ejemplo, el carácter “a” (valor 0x61) precede el carácter “ä” (valor 0xE4) en el juego de caracteres, pero el carácter “ä” precede el carácter “a” lexicográficamente. Para realizar una comparación lexicográfica en ese caso, utilice strcoll
en lugar de strcmp
. Como alternativa, puede usar strxfrm
en las cadenas originales y después usar strcmp
en las cadenas resultantes.
strcoll
, stricoll
, _strncoll
y _strnicoll
controlan automáticamente las cadenas de caracteres multibyte según la página de código de configuración regional actualmente en uso, igual que sus homólogos de carácter ancho (Unicode). Las versiones de caracteres multibyte (MBC) de estas funciones, sin embargo, intercalan las cadenas según los caracteres en función de la página de códigos multibyte actualmente en uso.
Dado que las funciones coll
intercalan lexicográficamente las cadenas para compararlas mientras que las funciones cmp
prueban simplemente si las cadenas, las funciones coll
son mucho más lentas que las versiones correspondientes de cmp
. Por lo tanto, las coll
funciones solo se deben usar cuando hay una diferencia entre el orden del juego de caracteres y el orden de caracteres lexicográfico en la página de códigos actual y esta diferencia es de interés para la comparación de cadenas.
Consulte también
Configuración regional
Manipulación de cadenas
localeconv
_mbsnbcoll
, _mbsnbcoll_l
, , _mbsnbicoll
, _mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, , wcscmp
, _mbscmp
strncmp
, wcsncmp
, , _mbsncmp
, _mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
, _mbsnicmp_l
strxfrm
, wcsxfrm
, , _strxfrm_l
, _wcsxfrm_l