typestar

Concatenación en C

strcat agrega en el terminador existente; el destino debe tener espacio para ambos.

#include <string.h>

void join_three(char *out, size_t cap, const char *a, const char *b,
                const char *c) {
    if (cap == 0) {
        return;
    }
    out[0] = '\0';

    size_t used = 0;
    const char *parts[3] = {a, b, c};
    for (int i = 0; i < 3; i++) {
        size_t n = strlen(parts[i]);
        if (used + n + 1 > cap) {
            break;
        }
        memcpy(out + used, parts[i], n + 1);
        used += n;
    }
}

Cómo funciona

  1. El destino necesita espacio para su longitud, más la fuente, más uno.
  2. Repetir strcat reescanea desde el inicio cada vez, lo que es cuadrático.
  3. Rastrear el final tú mismo lo devuelve a trabajo lineal.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
20
Caracteres a escribir
345
Tokens
134
Ritmo de tres estrellas
95 tpm

Al ritmo de tres estrellas de 95 tokens por minuto, este intento toma unos 85 segundos.

Escribe este fragmento

Paso 3 de 4 en Copiar y construir; paso 3 de 13 en Cadenas y texto.

← Anterior Siguiente →