【发布时间】:2016-12-19 11:31:23
【问题描述】:
这与 sscanf usage - how to verify a completed scan vs an aborted scan 有关,但它是该问题未涵盖的边缘情况。
char entry[] = "V2X_3_accepted";
int d1,d2,ret1,ret2;
ret1 = sscanf(entry,"V2X_%d_expected",&d1);
ret2 = sscanf(entry,"V2X_%d_received",&d2);
预期结果:ret1==0; ret2==0; d1, d2未定义。
实际结果:ret1==1; ret2==1; d1=d2=3。
最后使用%n 无济于事,因为匹配字符串的长度相同。是否有一些巧妙的技巧可以在不执行连续 strncmp 或类似操作的情况下匹配尾随文本?
【问题讨论】:
-
@user3121023:很好!将其发布为答案。