Recortar espacios en C
Recortar en el lugar: avanzar para el inicio, retroceder para el final.
char *trim(char *text) {
while (isspace((unsigned char) *text)) {
text++;
}
char *end = text + strlen(text);
while (end > text && isspace((unsigned char) end[-1])) {
end--;
}
*end = '\0';
return text;
}
int is_blank(const char *text) {
for (; *text; text++) {
if (!isspace((unsigned char) *text)) {
return 0;
}
}
return 1;
}
Cómo funciona
- El espacio inicial se salta avanzando un puntero.
- El espacio final se quita escribiendo un NUL más temprano.
- Devolver el nuevo inicio evita copiar nada.
Palabras clave y builtins usados aquí
charconstforifintreturnunsignedwhile
El intento, en números
- Líneas
- 20
- Caracteres a escribir
- 325
- Tokens
- 117
- Ritmo de tres estrellas
- 100 tpm
Al ritmo de tres estrellas de 100 tokens por minuto, este intento toma unos 70 segundos.
Paso 3 de 3 en Dividir y parsear; paso 10 de 13 en Cadenas y texto.