Exportar (0) Imprimir
Expandir todo
div
eof
Expandir Minimizar
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

strcmp, wcscmp, _mbscmp

Comparar las cadenas.

Nota importante Importante

_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 
);
string1, string2

Cadenas terminadas en null a comparar.

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.

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.

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

// 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 );
}
Comparar las cadenas: El perro brown rápido omite sobre el zorro lazy que el perro de brown The QUICK omite sobre strcmp lazy de fox: La cadena 1 es mayor que _stricmp de la cadena 2: La cadena 1 es igual a la cadena 2
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.