【发布时间】:2013-03-12 17:02:20
【问题描述】:
我是真正的 C 初学者,但我正在学习!
我之前偶然发现了这个问题,并决定询问它的原因是什么。请解释你的答案,以便我学习。
我制作了一个程序,它允许您输入 5 个字符,然后显示您编写的字符并还原它们,例如:“asdfg”-“gfdsa”。 奇怪的是,在输入的原始字符之后显示了一个奇怪的字符。
代码如下:
char str[5];
char outcome[] = "OOOOO";
int i;
int u;
printf("Enter five characters\n");
scanf("%s", str);
for(i = 4, u = 0; i >=0; u++, i--){
outcome[i] = str[u];
}
printf("\nYou wrote: %s. The outcome is: %s.", str , outcome);
return 0;
如果我输入:“asdfg”,它会显示:“asdfg♣”,这是为什么呢?
感谢您的宝贵时间,请解释您的答案:)
【问题讨论】:
-
您需要终止字符数组。见stackoverflow.com/questions/10943033/…
标签: c arrays string character scanf