strcmp, wcscmp, _mbscmp

Comparar las cadenas.

Nota importanteImportante

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

int strcmp(
   const char *string1,
   const char *string2 
);
int wcscmp(
   const wchar_t *string1,
   const wchar_t *string2 
);
int _mbscmp(
   const unsigned char *string1,
   const unsigned char *string2 
);

Parámetros

  • string1, string2
    Cadenas terminadas en null a comparar.

Valor devuelto

El valor devuelto para cada una de estas funciones indica la relación lexicográfica de string1 a string2.

Valor

Relación de string1 y string2

< 0

string1 es menor que string2

0

string1 es idéntico a string2

> 0

string1 es mayor que string2

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

Comentarios

La función de strcmp compara string1 y string2 lexicográficamente y devuelve un valor que indica la relación.wcscmp y _mbscmp son versiones, respectivamente, de carácter ancho y de multibyte- carácter de strcmp._mbscmp reconoce secuencias de multibyte- carácter según la página de códigos actual multibyte y devuelve _NLSCMPERROR en un error.Para obtener más información, vea Páginas de códigos.Además, si string1 o string2 es un puntero NULL, _mbscmp 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, _mbscmp devuelve _NLSCMPERROR y establece errno a EINVAL.strcmp y wcscmp no validan sus parámetros.Estas tres funciones se comportan exactamente igual de otra manera.

Asignaciones de la rutina de Genérico- texto

Rutina de TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tcscmp

strcmp

_mbscmp

wcscmp

Las funciones de strcmp difieren de las funciones de strcoll en que las comparaciones de strcmp no afecta a la configuración regional, mientras que la manera de las comparaciones de strcoll viene determinada por la categoría de LC_COLLATE de la configuración regional actual.Para obtener más información sobre la categoría de LC_COLLATE, vea setlocale, _wsetlocale.

En la configuración regional “c”, el orden de los caracteres del juego de caracteres (juego de caracteres ASCII) es el mismo que el orden lexicográfico de caracteres.Sin embargo, en configuraciones regionales, el orden de los caracteres del juego de caracteres puede diferir de la orden lexicográfica.Por ejemplo, en algunas configuraciones regionales europeas, el carácter “a” (valor 0x61) precede el carácter “ä” (valor 0xE4) en el juego de caracteres, pero el carácter “ä” precede el carácter “a” lexicográficamente.

En configuraciones regionales para las que el juego de caracteres y el orden lexicográfico de caracteres difieren, utilice strcoll en lugar de strcmp para la comparación lexicográfica de cadenas como el valor de categoría de LC_COLLATE de la configuración regional actual.Para realizar una comparación lexicográfica de la configuración regional en el ejemplo anterior, utilice strcoll en lugar de strcmp.Alternativamente, puede utilizar strxfrm en cadenas originales, utiliza strcmp en las cadenas resultantes.

_stricmp, _wcsicmp, y _mbsicmp comparan cadenas primero convirtiendolas a los formularios en minúsculas.Dos cadenas que contienen caracteres que se encuentran entre la “z” y “a” en la tabla ASCII (“[”, '\', “]”, '^', '_', y '`') se comparan de manera diferente, dependiendo del caso.Por ejemplo, las dos cadenas "ABCDE" y "ABCD^" comparan una manera si la comparación es minúscula ("abcde" > "abcd^") y otra manera ("ABCDE" < "ABCD^") si la comparación es mayúscula.

Requisitos

Rutina

Encabezado necesario

strcmp

<string.h>

wcscmp

<string.h> o <wchar.h>

_mbscmp

<mbstring.h>

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

Bibliotecas

Todas las versiones de Bibliotecas en tiempo de ejecución de C.

Ejemplo

// crt_strcmp.c

#include <string.h>
#include <stdio.h>
#include <stdlib.h>

char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown dog jumps over the lazy fox";

int main( void )
{
   char tmp[20];
   int result;

   // Case sensitive
   printf( "Compare strings:\n   %s\n   %s\n\n", string1, string2 );
   result = strcmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof(tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof (tmp), "less than" );
   else
      strcpy_s( tmp, _countof (tmp), "equal to" );
   printf( "   strcmp:   String 1 is %s string 2\n", tmp );

   // Case insensitive (could use equivalent _stricmp)
   result = _stricmp( string1, string2 );
   if( result > 0 )
      strcpy_s( tmp, _countof (tmp), "greater than" );
   else if( result < 0 )
      strcpy_s( tmp, _countof (tmp), "less than" );
   else
      strcpy_s( tmp, _countof (tmp), "equal to" );
   printf( "   _stricmp:  String 1 is %s string 2\n", tmp );
}
  

Equivalente en .NET Framework

System::String::CompareOrdinal

Vea también

Referencia

Manipulación de cadenas (CRT)

memcmp, wmemcmp

_memicmp, _memicmp_l

funciones de strcoll

_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

strrchr, wcsrchr, _mbsrchr, _mbsrchr_l

strspn, wcsspn, _mbsspn, _mbsspn_l

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l