Se recomienda usar Visual Studio 2017

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Compara dos cadenas hasta el número especificado de caracteres.

System_CAPS_ICON_important.jpg Importante

_mbsncmp y _mbsncmp_l no se pueden usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para más información, vea Funciones de CRT no admitidas 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 que se van a comparar.

count
Número de caracteres que se van a comparar.

locale
Configuración regional que se va a usar.

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

Valor devueltoDescripción
< 0La subcadena string1 es menor que la subcadena string2.
0La subcadena string1 es idéntica a la subcadena string2.
> 0La subcadena string1 es mayor que la subcadena string2.

Si se produce un error de validación de parámetros, _mbsncmp y _mbsncmp_l devuelven _NLSCMPERROR, que se define en <string.h> y <mbstring.h>.

La función strncmp realiza una comparación ordinal de, a lo sumo, count caracteres de string1 y string2, y devuelve un valor que indica la relación entre ambas subcadenas. strncmp es una versión de _strnicmp que distingue entre mayúsculas y minúsculas. wcsncmp y _mbsncmp son versiones de _wcsnicmp y _mbsnicmp que distinguen entre mayúsculas y minúsculas.

wcsncmp y _mbsncmp son versiones de caracteres anchos y multibyte de strncmp. Los argumentos de wcsncmp son cadenas de caracteres anchos; los de _mbsncmp son cadenas de caracteres multibyte. _mbsncmp reconoce secuencias de caracteres multibyte según una página de códigos multibyte y devuelve _NLSCMPERROR cuando se produce un error.

Además, _mbsncmp y _mbsncmp_l validan parámetros. Si string1 o string2 es un puntero nulo, se invoca el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, _mbsncmp y _mbsncmp_l devuelven _NLSCMPERROR y establecen errno en EINVAL. strncmp y wcsncmp no validan sus parámetros. Por lo demás, estas funciones se comportan exactamente igual.

El comportamiento de comparación de _mbsncmp y _mbsncmp_l se ve afectado por la configuración de la categoría LC_CTYPE de la configuración regional. Esta opción controla la detección de los bytes iniciales y finales de caracteres multibyte. Para obtener más información, consulte setlocale. La función _mbsncmp usa la configuración regional actual para este comportamiento dependiente de dicha configuración. La función _mbsncmp_l es idéntica, salvo que usa el parámetro locale. Para obtener más información, vea Locale. Si la configuración regional es de un solo byte, el comportamiento de estas funciones es idéntico a strncmp.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_tcsnccmpstrncmp_mbsncmpwcsncmp
_tcsncmpstrncmp_mbsnbcmpwcsncmp
_tccmpSe asigna a una macro o una función insertada_mbsncmpSe asigna a una macro o una función insertada
No aplicableNo aplicable_mbsncmp_lNo aplicable
RutinaEncabezado necesario
strncmp<string.h>
wcsncmp<string.h> o <wchar.h>
_mbsncmp, _mbsncmp_l<mbstring.h>

Para obtener más información sobre compatibilidad, vea Compatibilidad.

// 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 );  
}  

Compare strings:  
      The quick brown dog jumps over the lazy fox  
      The QUICK brown fox jumps over the lazy dog  
  
Function:   strncmp (first 10 characters only)  
Result:      String 1 is greater than string 2  
  
Function:   strnicmp _strnicmp (first 10 characters only)  
Result:      String 1 is equal to string 2  

System::String::Compare

Manipulación de cadenas
Configuración regional
Interpretación de secuencias de caracteres Multibyte
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcmp, wcscmp, _mbscmp
strcoll (función)
_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

Mostrar: