strtok()
kullanarak dizeleri ayrıştırmaya çalışıyordum; Bir noktalı virgülle ayrılmış dizeleri ayrıştırmaya çalışıyorum (;). Ama noktalı virgül olmayan bir dize strtok()
için girdiğimde, tüm dizeyi döndürür. Belirteç eşleşmeleri yoksa NULL
dönmemeli mi?Strtok(), simge belirtimi yok
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);
}
çıkışı:
Bu benim kodudur şey bulduk !! INSERT A-> B B-> C INSERT C-> D
var ... şimdi a ve b
Jetonlar “Belirteç eşleşmeleri yoksa NULL döndürmemeli?” Bütün dize bir jeton eşleşmesidir. –
';' Jeton yerine, strchr’i deneyin. – ams