将字符串分配给C中char类型的变量

时间:2017-10-10 06:52:28

标签: c string variables char

我使用过代码。

char *y;
y="hello world";
printf("%c",y);

它只显示一些无用的东西。 我犯了什么错误。

3 个答案:

答案 0 :(得分:4)

更改:

printf("%c",y);

到:

printf("%s",y);

由于%c说明符表示char。要识别字符串,您需要使用说明符%s

答案 1 :(得分:1)

要打印c-string,请使用%s中的printf格式说明符。现在发生的事情是y评估某个地址,然后您尝试使用导致UB%c打印该地址。

答案 2 :(得分:1)

它是undefined behaviour,因为您使用了错误的格式说明符。

C11标准:§7.21.6.1: 第9段:

  

如果转换规范无效,则行为为   undefined.225)如果任何参数不是正确的类型   相应的转换规范,行为未定义。

因此,请使用%s代替%c作为字符串。