_mbsnbcmp
, _mbsnbcmp_l
Compara los primeros n bytes de dos cadenas de caracteres 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 _mbsnbcmp(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsnbcmp_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
Parámetros
string1
, string2
Las cadenas que se comparan.
count
El número de bytes que se compara.
locale
Configuración regional que se va a usar.
Valor devuelto
El valor devuelto indica la relación ordinal entre 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 . |
En un error de validación de parámetros, _mbsnbcmp
y _mbsnbcmp_l
devuelve _NLSCMPERROR
, que se define en <string.h> y <mbstring.h>.
Comentarios
Las funciones _mbsnbcmp
comparan a lo sumo los primeros count
bytes en string1
y string2
, y devuelven un valor que indica la relación entre las subcadenas. _mbsnbcmp
es una versión de _mbsnbicmp
que distingue entre mayúsculas y minúsculas. A diferencia _mbsnbcoll
de , _mbsnbcmp
no se ve afectado por el orden de intercalación de la configuración regional. _mbsnbcmp
reconoce secuencias de caracteres multibyte según la página de códigos multibyte actual.
_mbsnbcmp
es similar a _mbsncmp
, salvo que _mbsncmp
compara las cadenas por caracteres y no por bytes.
El valor de salida se ve afectado por la categoría LC_CTYPE
de la configuración regional, que especifica los bytes iniciales y finales bytes de los caracteres multibyte. Para obtener más información, vea setlocale
. La función _mbsnbcmp
usa la configuración regional actual para este comportamiento dependiente de dicha configuración. La función _mbsnbcmp_l
es idéntica, salvo que usa el parámetro locale
. Para obtener más información, vea Locale.
Si o string1
string2
es un puntero nulo, estas funciones invocan al controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, las funciones devuelven _NLSCMPERROR
y errno
se establecen en EINVAL
.
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 |
---|---|---|---|
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tcsncmp_l |
strncmp |
_mbsnbcml |
wcsncmp |
Requisitos
Routine | Encabezado necesario |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_mbsnbcmp.c
#include <mbstring.h>
#include <stdio.h>
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";
int main( void )
{
char tmp[20];
int result;
printf( "Compare strings:\n %s\n", string1 );
printf( " %s\n\n", string2 );
printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
result = _mbsncmp( string1, string2 , 10 );
if( result > 0 )
_mbscpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
_mbscpy_s( tmp, sizeof(tmp), "less than" );
else
_mbscpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
result = _mbsnicmp( string1, string2, 10 );
if( result > 0 )
_mbscpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
_mbscpy_s( tmp, sizeof(tmp), "less than" );
else
_mbscpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
}
Output
Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown fox jumps over the lazy dog
Function: _mbsnbcmp (first 10 characters only)
Result: String 1 is greater than string 2
Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result: String 1 is equal to string 2
Consulte también
Manipulación de cadenas
_mbsnbcat
, _mbsnbcat_l
_mbsnbicmp
, _mbsnbicmp_l
strncmp
, wcsncmp
, , _mbsncmp
, _mbsncmp_l
_strnicmp
, _wcsnicmp
, _mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
, _mbsnicmp_l
Configuración regional
Interpretación de secuencias de caracteres de varios bytes