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

Cadenas en C: ejercicio resuelto

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

Enunciado

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

Solución en C

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#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;
}

Salida esperada

1
2
3
cmp=0
copia=hola
len=4

Caso borde recomendado

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

1
a = "1234567890123456789012345678901"   // 31 chars

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

Errores frecuentes

  • 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.

Complejidad temporal y espacial

  • strlen, strcpy, strcmp: O(n) sobre la longitud de la cadena.
  • Espacio extra: O(1) (sin contar buffers de entrada/salida).

Aplicación práctica

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

Siguiente ejercicio recomendado

Práctica guiada y siguiente paso

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

FAQ

¿Este ejercicio sirve para entrevistas y exámenes de C?

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

¿Dónde seguir con más ejercicios resueltos de C?

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

¿Cómo practicar este tipo de ejercicio para mejorar más rápido?

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.