Comparar cadenas en C usando strcmp

En este post veremos cómo saber si dos cadenas son iguales en ANSI C, ya que no podemos usar simplemente el operador == para comparar cadenas, pues son una cosa compleja.

Vamos a ver cómo usar strcmp para comparar cadenas en C y saber si ambas son iguales, ya que los strings en realidad son un conjunto de caracteres dentro de ANSI C.

Función strcmp en C

Al igual que en PHP, en C existe la función strcmp que quiere decir “string compare”. Esta función puede devolver 0, un número mayor que 0, o un número menor que 0.

Lo sé, suena confuso pero veamos.

La función strcmp devolverá 0 si las cadenas son iguales. En caso de que la primera sea “menor” que la segunda, devolverá un número negativo, y finalmente si la primera es mayor que la segunda, devolverá un número positivo.

Usualmente estos números son 0, -1 y 1, pero podemos hacer las comparaciones basándonos en el 0 (es decir, si es menor que cero, igual que cero o mayor que cero).

Comparar cadenas en C usando strcmp

Vamos a ver un ejemplo para entender mejor cómo comparar cadenas con strcmp:

/*
        Comparar cadenas en C usando strcmp

        https://parzibyte.me/blog
*/
#include <stdio.h>
#include <string.h>

int main(void) {
  printf("Comparar A y Z: %d\n", strcmp("A", "Z"));
  printf("Comparar Z y A: %d\n", strcmp("Z", "A"));
  printf("Comparar A y A: %d\n", strcmp("A", "A"));
  return 0;
}

Con mayor y menor me refiero a que, según el alfabeto, la letra aparece antes o después. La salida al ejecutar el programa es:

Comparar A y Z: -1
Comparar Z y A: 1
Comparar A y A: 0

Saber si dos cadenas son iguales usando strcmp

Ahora sí a lo que venimos. Vamos a ver cómo saber si dos cadenas son iguales en C; para esto simplemente hay que comparar el valor que devuelve la función; si es 0 entonces las cadenas son iguales.

/*
        Comparar cadenas en C usando strcmp

        https://parzibyte.me/blog
*/
#include <stdio.h>
#include <string.h>

int main(void) {
  if (strcmp("parzibyte", "parzibyte") == 0) {
    printf("Las cadenas son iguales");
  } else {
    printf("Las cadenas NO son iguales");
  }
  return 0;
}

Invocamos al método strcmp y comparamos su valor, si es 0 entonces ambas strings son iguales.

Ahora que ya sabes cómo se usa strcmp, puedes ver un ejercicio en C sobre la búsqueda binaria. También te invito a ver otros ejemplos de código en C.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

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