typestar

Partir con strtok en C

strtok corta una cadena en tokens en el lugar, es decir, modifica la entrada.

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

int split_fields(char *line, const char *delims, char **out, int max) {
    int count = 0;
    char *token = strtok(line, delims);
    while (token != NULL && count < max) {
        out[count++] = token;
        token = strtok(NULL, delims);
    }
    return count;
}

void demo(void) {
    char line[] = "rust,104,97.5";
    char *fields[4];
    int n = split_fields(line, ",", fields, 4);
    for (int i = 0; i < n; i++) {
        printf("[%s]", fields[i]);
    }
    printf("\n");
}

Cómo funciona

  1. Escribe NUL sobre cada delimitador, así que el búfer debe ser escribible.
  2. La primera llamada recibe la cadena; las siguientes reciben NULL.
  3. Guarda estado oculto, así que no puede anidarse ni compartirse.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
22
Caracteres a escribir
457
Tokens
154
Ritmo de tres estrellas
100 tpm

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

Escribe este fragmento

Paso 1 de 3 en Dividir y parsear; paso 8 de 13 en Cadenas y texto.

← Anterior Siguiente →