Ich habe versucht, Strings mit strtok()
zu analysieren; Ich versuche, Zeichenfolgen zu analysieren, die durch ein Semikolon (;) getrennt sind. Aber wenn ich einen String ohne Semikolon in strtok()
eintrage, gibt es den gesamten String zurück. Sollte es nicht NULL
zurückgeben, wenn es keine Token-Übereinstimmungen gibt?Strtok(), keine Token-Übereinstimmung
Dies ist mein Code:
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);
}
Die Ausgabe lautet: Wir haben etwas bekommen !! INSERT A-> B B-> C INSERT C-> D
'sollte es nicht NULL zurückgeben, wenn es keine Token-Übereinstimmungen gibt?' N o. Die gesamte Zeichenfolge ist eine Token-Übereinstimmung. –
Wenn Sie nach ';' anstelle von Tokens versuchen Sie 'strchr'. – ams