【发布时间】:2012-06-06 10:38:50
【问题描述】:
为什么C的printf格式字符串同时有%c和%s?
我知道%c 代表单个字符,%s 代表一个以空字符结尾的字符串,但是仅字符串表示还不够吗?
【问题讨论】:
-
可能是为了区分以空字符结尾的字符串和一个字符。如果他们只有
%s,那么每个字符也必须以空字符结尾。 char c = 'a';,在这种情况下,c必须以 null 结尾。这是我的假设:) -
@Mahesh:为什么不把它作为答案,尤其是当 这是答案
-
嗯?如果你只想放一个字符怎么办,为什么需要在它后面附加一个 NUL 呢?还是我在这个问题中没有得到什么?
-
@Mahesh 你的假设就是我相信这个问题的答案
-
%c需要char类型的数据 - 一个值原语。%s需要一个char *类型的数据,一个指针。尽管它们都适用于文本,但它们之间的差异在 C 中是巨大的。
标签: c string-formatting