Compartir vía


_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 countstring2 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