Tôi đang cố gắng phân tích chuỗi bằng cách sử dụng strtok()
; Tôi đang cố gắng phân tích các chuỗi được phân định bằng dấu chấm phẩy (;). Nhưng khi tôi nhập một chuỗi không có dấu chấm phẩy vào strtok()
, nó sẽ trả về toàn bộ chuỗi. Không nên trả lại NULL
nếu không có kết quả khớp mã thông báo?Strtok(), không khớp với mã thông báo
Đây là mã của tôi:
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);
}
Đầu ra là: Chúng tôi đã nhận một cái gì đó !! INSERT A-> B B-> C INSERT C-> D
'không được trả về NULL nếu không có kết quả khớp token nào?' N o Toàn bộ chuỗi là một kết hợp mã thông báo. –
Nếu bạn đang tìm kiếm ';' thay vì mã thông báo, hãy thử 'strchr'. – ams