Cadenas en C: ejercicios resueltos con strlen, strcpy y strcmp

  2 minutos

Si buscas cadenas en C ejercicios resueltos, este ejemplo cubre las operaciones más pedidas con string.h.

Compara dos cadenas, copia una de ellas y muestra su longitud.

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

int main(void) {
    char a[32] = "hola";
    char b[32] = "hola";
    char copia[32];

    int cmp = strcmp(a, b);
    strcpy(copia, a);

    printf("cmp=%d\n", cmp);
    printf("copia=%s\n", copia);
    printf("len=%zu\n", strlen(copia));
    return 0;
}
cmp=0
copia=hola
len=4

Prueba con cadenas en el límite del buffer para verificar \0:

a = "1234567890123456789012345678901"   // 31 chars

Si no dejas espacio para el terminador, tendrás desbordamiento.

  • No reservar espacio para \0.
  • Usar strcpy sin validar tamanos.
  • Comparar cadenas con == en vez de strcmp.
  • Olvidar limpiar \n al leer con fgets y fallar comparaciones.
  • strlen, strcpy, strcmp: O(n) sobre la longitud de la cadena.
  • Espacio extra: O(1) (sin contar buffers de entrada/salida).

La manipulacion de cadenas es clave para parsear logs, comandos y datos de entrada.

Si quieres una ruta completa con progresión real de dificultad:

Sí. Trabaja patrones que aparecen mucho en prácticas, entrevistas técnicas y evaluaciones de programación en C.

En Programación en C en 100 ejercicios resueltos y en Ejercicios C. Kindle Unlimited: Ver en Amazon.

Empieza con entradas pequeñas, prueba casos límite (vacío, un elemento y capacidad máxima) y luego reescribe la solución sin copiarla.