【发布时间】:2013-05-28 21:33:04
【问题描述】:
我有一个由空格分隔的数字组成的输入字符串,例如“12 23 34”。
输出应该是一个整数数组。
我尝试了以下方法:
while (sscanf(s, "%d", &d) == 1) {
arr[n++] = d;
}
但我发现,由于我不是从文件中读取(偏移量会自动调整),
我每次都在d 中存储相同的号码。
然后我尝试了这个:
while (sscanf(s, "%d", &d) == 1) {
arr[n++] = d;
s = strchr(s, ' ');
}
手动将s 转换为新号码。
我相信应该可以正常工作。我只是不明白为什么它会失败。
【问题讨论】:
-
如果是常数个数,可以使用macthing格式字符串——“%d %d %d”。如果没有,则每次都可以找到下一个空格,并将传递作为第一个参数传递给
scanf。