Compartir a través de


_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 con /ZW.

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 string.

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 se produce un error de validación de parámetros, _mbsnbcmp y _mbsnbcmp_l devuelven _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 de _mbsnbcoll, _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 actual página de códigos multibyte.

_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, consulta Configuración regional.

Si string1 o string2 son un puntero nulo, estas funciones invocan el 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 establece en EINVAL.

Asignaciones de rutina 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

Rutina

Encabezado necesario

_mbsnbcmp

<mbstring.h>

_mbsnbcmp_l

<mbstring.h>

Para obtener más información de compatibilidad, vea 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 );
}

Salida

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

Equivalente en .NET Framework

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, consulta Ejemplos de invocación de plataforma.

Vea también

Referencia

Manipulación de cadenas (CRT)

_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