Điều này liên quan đến sscanf usage - how to verify a completed scan vs an aborted scan nhưng đó là một trường hợp cạnh không được trả lời bởi câu hỏi đó.khớp với văn bản trong sscanf?
char entry[] = "V2X_3_accepted";
int d1,d2,ret1,ret2;
ret1 = sscanf(entry,"V2X_%d_expected",&d1);
ret2 = sscanf(entry,"V2X_%d_received",&d2);
Kết quả mong đợi: ret1==0; ret2==0; d1, d2
chưa xác định.
Kết quả thực tế: ret1==1; ret2==1; d1=d2=3
.
Sử dụng %n
ở cuối sẽ không hữu ích vì các chuỗi đối sánh có chiều dài bằng nhau. Có một số thủ thuật gọn gàng để phù hợp với văn bản sau mà không thực hiện một strncmp liên tiếp hoặc tương tự?
@ user3121023: Tốt! Đăng bài đó làm câu trả lời. –