_mbsnbcoll
, _mbsnbcoll_l
, , _mbsnbicoll
, _mbsnbicoll_l
Compara n
bytes de dos cadenas de caracteres multibyte usando la información de la página de códigos multibyte.
Importante
Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.
Sintaxis
int _mbsnbcoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbcoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
int _mbsnbicoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbicoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
Parámetros
string1
, string2
Cadenas que se van a comparar.
count
Número de bytes que se van a comparar.
locale
Configuración regional que se va a usar.
Valor devuelto
El valor devuelto indica la relación de las subcadenas de string1
y string2
.
Valor devuelto | Descripción |
---|---|
< 0 | La subcadena string1 es menor que la subcadena string2 . |
0 | La subcadena string1 es idéntica a la subcadena string2 . |
> 0 | La subcadena string1 es mayor que la subcadena string2 . |
Si string1
o es o count
string2
es NULL
mayor que INT_MAX
, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven _NLSCMPERROR
y establecen errno
en EINVAL
. Para usar _NLSCMPERROR
, incluya String.h o Mbstring.h.
Comentarios
Cada una de estas funciones intercala, como máximo, los primeros count
bytes de string1
y string2
, y devuelve un valor que indica la relación entre las subcadenas resultantes de string1
y string2
. Si el byte final de la subcadena de string1
o string2
es un byte principal, no se incluye en la comparación; estas funciones comparan solo caracteres completos en las subcadenas. _mbsnbicoll
es una versión sin distinción entre mayúsculas y minúsculas de _mbsnbcoll
. Al igual que _mbsnbcmp
y _mbsnbicmp
, _mbsnbcoll
y _mbsnbicoll
intercalan las dos cadenas de caracteres multibyte según el orden lexicográfico especificado en la página de códigos multibyte que se esté usando.
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 no es igual que el orden lexicográfico de los caracteres. En la configuración regional "C", 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 de cadenas por bytes en un caso así, use _mbsnbcoll
en lugar de _mbsnbcmp
; para comprobar solo si las cadenas son iguales, use _mbsnbcmp
.
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.
El valor de salida se ve afectado por el valor de la categoría LC_CTYPE
de la configuración regional. Para obtener más información, vea setlocale
. Las versiones de estas funciones sin el sufijo _l
usan la configuración regional actual de su comportamiento dependiente de la configuración regional; las versiones con el sufijo _l
son idénticas salvo que usan el parámetro locale pasado en su lugar. Para obtener más información, vea Locale.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsncoll |
_strncoll |
_mbsnbcoll |
_wcsncoll |
_tcsncoll_l |
_strncoll_l |
_mbsnbcoll_l |
_wcsncoll_l |
_tcsnicoll |
_strnicoll |
_mbsnbicoll |
_wcsnicoll |
_tcsnicoll_l |
_strnicoll_l |
_mbsnbicoll_l |
_wcsnicoll_l |
Requisitos
Routine | Encabezado necesario |
---|---|
_mbsnbcoll |
<mbstring.h> |
_mbsnbcoll_l |
<mbstring.h> |
_mbsnbicoll |
<mbstring.h> |
_mbsnbicoll_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Consulte también
Manipulación de cadenas
_mbsnbcat
, _mbsnbcat_l
_mbsnbcmp
, _mbsnbcmp_l
_mbsnbicmp
, _mbsnbicmp_l
Funciones strcoll
strncmp
, wcsncmp
, , _mbsncmp
, _mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
, _mbsnicmp_l