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
- El contador de columna decide cuándo cortar.
- Un corte reinicia el contador y emite un salto de línea.
- El separador solo se escribe entre palabras, nunca antes de la primera.
Palabras clave y builtins usados aquí
charconstelseforifsize_tvoid
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.
Paso 2 de 2 en Transformar; paso 12 de 13 en Cadenas y texto.