Sto usando strtok()
in c per analizzare una stringa csv. Per prima cosa ne faccio un token per scoprire quanti token ci sono in modo da poter allocare una stringa della dimensione corretta. Quindi utilizzo la stessa variabile che ho usato l'ultima volta per la tokenizzazione. Ogni volta che lo faccio una seconda volta sebbene lo strtok(NULL, ",")
restituisca NULL
anche se ci sono ancora più token da analizzare. Qualcuno può dirmi cosa sto facendo di sbagliato?tokenizing una stringa due volte in 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, ",");
}
così via, che secondo ciclo while finisce sempre dopo il primo token si trova anche se ci sono più gettoni. Qualcuno sa cosa sto sbagliando?
Come è che a quanto pare tutti sanno cosa 'strtok()' è in questi giorni, ma nessuno ha letto la documentazione? Nessuno me ne ha parlato quando stavo imparando C, ma appena ho dovuto saperlo, ho letto su di esso. –