我的代码是关于对柏林说一句话。这句话的一部分以"柏林"另一部分是来自用户的标准输入..打印输出后..我得到奇怪的随机事情,如" w $
这是我的代码:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main (){
#define MAX 1000
char arr [MAX] ;
char star [] = "Berlin ";
int i = 0;
while ((arr[i] = getchar()) != '\n') {
i++;
}
printf("%s%s", star,arr);
return 0;
}
答案 0 :(得分:2)
您没有为arr
添加空终止符(因为您使用%s
将其作为C字符串打印)。
添加
arr[i] = 0;
在while循环之后。
还有另外两个潜在的问题:
arr
可能会溢出。getchar()
可以在输入失败时返回EOF
,您需要将其考虑在内。