Stavo cercando di analizzare stringhe usando strtok()
; Sto cercando di analizzare stringhe delimitate da un punto e virgola (;). Ma quando inserisco una stringa senza punto e virgola a strtok()
, restituisce l'intera stringa. Non dovrebbe restituire NULL
se non ci sono match token?Strtok(), nessuna corrispondenza token
Questo è il mio codice:
int main(int argc, char** argv)
{
char cmd[] = "INSERT A->B B->C INSERT C->D";
char delim[] = ";";
char *result = NULL;
result = strtok(cmd,delim);
if(result == NULL)
{
printf("\n NO TOKENS\n");
}
else
{
printf("\nWe got something !! %s ",result);
}
return (EXIT_SUCCESS);
}
L'output è: Abbiamo qualcosa !! INSERT A-> B B-> C INSERT C-> D
'non dovrebbe restituire NULL se non ci sono match token?' N o. L'intera stringa è una corrispondenza token. –
Se stai cercando ';' piuttosto che token, prova a 'strchr'. – ams