Compartir por


_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 _mbsnbcollde , _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 _NLSCMPERRORy 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