typestar

Ajustar texto a un ancho en C

Emitir palabras hasta agotar la columna y entonces empezar una línea.

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

void wrap(const char *words[], size_t n, size_t width) {
    size_t column = 0;
    for (size_t i = 0; i < n; i++) {
        size_t len = strlen(words[i]);
        if (column > 0 && column + 1 + len > width) {
            printf("\n");
            column = 0;
        } else if (column > 0) {
            printf(" ");
            column++;
        }
        printf("%s", words[i]);
        column += len;
    }
    printf("\n");
}

Cómo funciona

  1. El contador de columna decide cuándo cortar.
  2. Un corte reinicia el contador y emite un salto de línea.
  3. El separador solo se escribe entre palabras, nunca antes de la primera.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
19
Caracteres a escribir
358
Tokens
128
Ritmo de tres estrellas
100 tpm

Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 77 segundos.

Escribe este fragmento

Paso 2 de 2 en Transformar; paso 12 de 13 en Cadenas y texto.

← Anterior Siguiente →