Traducciones de esta página?:

strcmp

Función que compara dos cadenas de C.

Sintaxis:

    #include <cstring>
    int strcmp( const char *str1, const char *str2 );

La función strcpm() devuelve el valor siguiente:

Devuelto Significado
menor que 0 str1 es menor a str2
igual a 0 str1 es igual a str2
mayor que 0 str1 es mayor a str2

Las cadenas str1 y str2 se comparan caracter a caracter y el primer caracter donde difieren “propaga” la relación. Un empate se rompe declarando como “menor” a la cadena que tiene menos caracteres. Este tipo de relación entre dos cadenas corresponde a la comparación “de diccionario” o lexicográfica, es decir str1<str2 si str1 viene “antes” en el diccionario que str2 (usando ASCII como el “alfabeto”).

Por ejemplo:

     printf( "Enter your name: " );
     scanf( "%s", name );
     if( strcmp( name, "Mary" ) == 0 ) {
       printf( "Hello, Dr. Mary!\n" );
     }

Nótese que si str1 o str2 no tienen el caracter nulo de terminación (\0), strcmp() producirá resultados incorrectos. La función similar pero más segura, strncmp() puede ser usada para comparar las cadenas con chequeos de rango.

Relacionados: memcmp, strcat, strchr, strcoll, strcpy, strlen, strncmp, strxfrm

:!: En STL el algoritmo lexicographical_compare extiende esta relación a “cadenas” de cualquier tipo.