【发布时间】:2021-03-07 13:28:10
【问题描述】:
对于以下每对
scanf格式字符串,指出这两个字符串是否等价。如果不是,请说明如何区分它们:(b)
"%d-%d-%d"与"%d -%d -%d"
所以在这种情况下,我的回答是它们不等价。由于除以% 开头的转换说明符以外的非空白字符不能以空格开头,因此它不会与非空白字符匹配。所以在第一种情况下,第一个和第二个整数后面不允许有空格,而在第二种情况下,前两个整数后面可以有任意数量的空格。
但我看到这本书有不同的答案。它说它们是彼此等价的。
这是书的错误吗?还是我对 scanf 函数中格式字符串的概念有误?
【问题讨论】:
-
除了
%c和其他几个,所有格式字符串都会自动跳过空格。所以"%d"和" %d"做同样的事情,而"%c"和" %c"的行为不同。您可以使用%d%d%d扫描1 2 3,但执行%c%c%c会导致读取1 2 -
@chux 你说得对,我没有仔细阅读,但无论如何我只是证实了他的信念。
-
@SheikYerbouti 公平点。