strcmp() en C/C++

strcmp() es una función de biblioteca incorporada y se declara en el archivo de encabezado <string.h> . Esta función toma dos strings como argumentos y compara estas dos strings lexicográficamente.

Sintaxis: :

int strcmp(const char *leftStr, const char *rightStr );

En el prototipo anterior, la función srtcmp toma dos strings como parámetros y devuelve un valor entero basado en la comparación de strings.

  • strcmp() compara las dos strings lexicográficamente , lo que significa que comienza la comparación carácter por carácter a partir del primer carácter hasta que los caracteres de ambas strings sean iguales o se encuentre un carácter NULO.
  • Si el primer carácter en ambas strings es igual, esta función verificará el segundo carácter, si también es igual, verificará el tercero y así sucesivamente.
  • Este proceso continuará hasta que un carácter en cualquiera de las strings sea NULL o los caracteres sean desiguales.

¿Qué devuelve strcmp()?

Esta función puede devolver tres valores enteros diferentes según la comparación:

  1. Cero (0) : un valor igual a cero cuando se encuentra que ambas strings son idénticas. Es decir, es decir, todos los caracteres de ambas strings son iguales.
    All characters of strings are same

    // C program to illustrate
    // strcmp() function
    #include<stdio.h>
    #include<string.h>
      
    int main()
          
        char leftStr[] = "g f g";
        char rightStr[] = "g f g";
          
        // Using strcmp()
        int res = strcmp(leftStr, rightStr);
          
        if (res==0)
            printf("Strings are equal");
        else 
            printf("Strings are unequal");
          
        printf("\nValue returned by strcmp() is:  %d" , res);
        return 0;
    }

    Producción:

    Strings are equal
    Value returned by strcmp() is:  0
    
  2. Mayor que cero ( >0 ) : Se devuelve un valor mayor que cero cuando el primer carácter que no coincide en leftStr tiene el valor ASCII mayor que el carácter correspondiente en rightStr o también podemos decir
    If character in leftStr is lexicographically
    after the character of rightStr 

    // C program to illustrate
    // strcmp() function
    #include<stdio.h>
    #include<string.h>
    int main()
        // z has greater ASCII value than g
        char leftStr[] = "zfz";
        char rightStr[] = "gfg";
          
        int res = strcmp(leftStr, rightStr);
          
        if (res==0)
            printf("Strings are equal");
        else 
            printf("Strings are unequal");
              
        printf("\nValue of result: %d" , res);
          
        return 0;
    }

    Producción:

    Strings are unequal
    Value returned by strcmp() is:  19
    
  3. Menor que cero (<0) : se devuelve un valor menor que cero cuando el primer carácter que no coincide en leftStr tiene un valor ASCII menor que el carácter correspondiente en rightStr.
    If character in leftStr is lexicographically
    before the character of rightStr

    // C program to illustrate
    // strcmp() function
    #include<stdio.h>
    #include<string.h>
    int main()
        // b has less ASCII value than g
        char leftStr[] = "bfb";
        char rightStr[] = "gfg";
          
        int res = strcmp(leftStr, rightStr);
          
        if (res==0)
            printf("Strings are equal");
        else 
            printf("Strings are unequal");
              
        printf("\nValue returned by strcmp() is:  %d" , res);
          
          
        return 0;
    }

    Producción:

    Strings are unequal
    Value returned by strcmp() is:  -5
    
  4. Punto importante: cuando las strings no son las mismas, encontrará que el valor devuelto por la función strcmp() es la diferencia entre los valores ASCII del primer carácter no coincidente en leftStr y rightStr en ambos casos.
     
    Este artículo es una contribución de Harsh Agarwal . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

    Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *