strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
Compare los caracteres de dos cadenas, utilizando la configuración regional actual o una configuración regional especificada.
Importante |
---|
_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
Vea también
Referencia
Interpretación de secuencias de Multibyte- Carácter
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strrchr, wcsrchr, _mbsrchr, _mbsrchr_l