Compartir por


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