strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Compare los caracteres de dos cadenas, utilizando la configuración regional actual o una configuración regional especificada.

Nota importanteImportante

_mbsncmp y _mbsncmp_l no se pueden utilizar en las aplicaciones que se ejecutan en tiempo de ejecución de Windows.Para obtener más información, vea Funciones CRT no compatibles con /ZW.

int strncmp(
   const char *string1,
   const char *string2,
   size_t count 
);
int wcsncmp(
   const wchar_t *string1,
   const wchar_t *string2,
   size_t count 
);
int _mbsncmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);
int _mbsncmp_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count, 
   _locale_t locale
);int _mbsnbcmp(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count 
);

Parámetros

  • string1, string2
    Cadenas a comparar.

  • count
    Número de caracteres que se va a comparar.

  • locale
    Configuración regional a utilizar.

Valor devuelto

El valor devuelto indica la relación de las subcadenas de string1 y de string2 como sigue.

Valor devuelto

Descripción

< 0

subcadena de string1 menos que la subcadena de string2

0

subcadena de string1 idéntica a la subcadena de string2

> 0

subcadena de string1 mayor que la de string2

En un error, _mbsncmp devuelve _NLSCMPERROR, que se define en STRING.H y MBSTRING.H.

Comentarios

La función de strncmp lexicográficamente compara, como máximo, los primeros caracteres de count en string1 y string2 y devuelve un valor que indica la relación entre las subcadenas.strncmp es una versión con distinción entre mayúsculas y minúsculas de _strnicmp.wcsncmp y _mbsncmp son versiones con distinción entre mayúsculas y minúsculas de _wcsnicmp y de _mbsnicmp.

wcsncmp y _mbsncmp son versiones de caracteres anchos y de multibyte- carácter de strncmp.Los argumentos y el valor devuelto de wcsncmp son cadenas de caracteres; las de _mbsncmp son cadenas de multibyte- carácter._mbsncmp reconoce secuencias de multibyte- carácter como una página de códigos multibyte y devuelve _NLSCMPERROR en un error.

Además, _mbsncmp valida sus parámetros.Si string1 o string2 es un puntero NULL, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, _mbsncmp devuelve _NLSCMPERROR y establece errno a EINVAL.strncmp y wcsncmp no validan sus parámetros.Estas tres funciones se comportan exactamente igual de otra manera.

El valor de salida se ve afectado por el valor de la categoría de LC_CTYPE de configuración regional; vea setlocale para obtener más información.Las versiones de estas funciones sin el sufijo de _l utilizan la configuración regional actual para este comportamiento configuración regional-dependiente; las versiones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en su lugar.Para obtener más información, vea Configuración regional.

Asignaciones de la rutina de Genérico- texto

Rutina de TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Asigna a la macro o función inline

_mbsncmp

Asigna a la macro o función inline

no disponible

no disponible

_mbsncmp_l

no disponible

Requisitos

Rutina

Encabezado necesario

strncmp

<string.h>

wcsncmp

<string.h> o <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

// crt_strncmp.c
#include <string.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      %s\n\n",
           string1, string2 );
   printf( "Function:   strncmp (first 10 characters only)\n" );
   result = strncmp( string1, string2 , 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n\n", tmp );
   printf( "Function:   strnicmp _strnicmp (first 10 characters only)\n" );
   result = _strnicmp( string1, string2, 10 );
   if( result > 0 )
      strcpy_s( tmp, sizeof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, sizeof(tmp), "less than" );
   else
      strcpy_s( tmp, sizeof(tmp), "equal to" );
   printf( "Result:      String 1 is %s string 2\n", tmp );
}
  

Equivalente en .NET Framework

System::String::Compare

Vea también

Referencia

Manipulación de cadenas (CRT)

Configuración regional

Interpretación de secuencias de Multibyte- Carácter

_mbsnbcmp, _mbsnbcmp_l

_mbsnbicmp, _mbsnbicmp_l

strcmp, wcscmp, _mbscmp

funciones de strcoll

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

_strset, _strset_l, _wcsset, _wcsset_l, _mbsset, _mbsset_l

strspn, wcsspn, _mbsspn, _mbsspn_l