{{1}}
输出: ram(垃圾值) str的大小是3,它的值大小为3.我希望ra作为我的答案,当然null值将结束。但我得到公羊(垃圾价值)。 请有人帮我解决我的问题。
答案 0 :(得分:3)
在C中,字符串是一个末尾带有空字符的字符数组。但是在您的情况下,字符数组只有3个元素,因此,虽然您要将"ram"
分配给char str[3]
,但只分配了'r'
,'a'
和'm'
,'\0'
不是。因此,printf
无法判断字符串的结束位置并继续打印垃圾值。
答案 1 :(得分:0)
如果您只想打印指定数量的字符,则可以使用
"%(你想要的字符数)s"
eg printf("%2s");
will print ra
答案 2 :(得分:0)
如果你想让字符串保持" ram",你需要为字符加上长度为4. 3,为空值加上1。
char str[4] = "ram";
printf("%s",str);
//output:
ram