/* Beginning 2.0 */
#include<stdio.h>
main()
{
printf(" %d signifies the %c of %f",9,'rise',17.0);
return 0;
}
Hello people
编译时,编译器发出以下警告:
warning: multi-character character constant [-Wmultichar]|
输出仅打印e
而不是rise
。
C中是否不允许使用多个字符?
如何打印整个单词(rise
)?
请帮帮我。
答案 0 :(得分:6)
尝试:printf(" %d signifies the %s of %f",9,"rise",17.0);
。
C区分字符(一个字符)和字符字符串(可包含任意数量的字符)。您使用单引号(''
)表示字符文字,但使用双引号表示字符 string 文字。
同样,您指定%c
转换单个字符,但指定%s
转换字符串。
答案 1 :(得分:3)
使用%s
和""
作为字符串:
printf(" %d signifies the %s of %f",9,"rise",17.0);
^^ ^ ^
对于'rise'
,这是有效的 ISO 9899:1999 C 。它使用-Wall
在gcc下进行编译而不会发出警告,并使用“multi-character character constant”
进行-pedantic
警告。
根据标准(§6.4.4.4.10),
The value of an integer character constant containing more than one character (e.g., 'ab'), [...] is implementation-defined.