Estoy usando strtok()
en c para analizar una cadena csv. Primero lo tokino para descubrir cuántos tokens hay, así puedo asignar una cadena del tamaño correcto. Luego sigo usando la misma variable que utilicé la última vez para la tokenización. Cada vez que lo hago por segunda vez, strtok(NULL, ",")
devuelve NULL
aunque todavía hay más tokens para analizar. ¿Alguien puede decirme qué estoy haciendo mal?tokenizar una cadena dos veces en c con strtok()
char* tok;
int count = 0;
tok = strtok(buffer, ",");
while(tok != NULL) {
count++;
tok = strtok(NULL, ",");
}
//allocate array
tok = strtok(buffer, ",");
while(tok != NULL) {
//do other stuff
tok = strtok(NULL, ",");
}
Así que en ese segundo bucle while siempre termina después de la primera ficha se encuentra a pesar de que hay más fichas. ¿Alguien sabe lo que estoy haciendo mal?
¿Cómo es que todo el mundo sabe qué 'strtok()' es en estos días, pero nadie ha leído la documentación? Nadie me lo contó cuando estaba aprendiendo C, pero tan pronto como tuve que saberlo, lo leí. –