如题所述
出现乱码是因为越界了。
printf("%s",
s);
//
输出的时候会直到遇到0,但你输入了3个字符,如果都没有0的话,那么就会继续输出乱码。
用scanf("%s",
s)来输入,这个要切记输入字符个数比数组个数少1个,然后printf输出就行了
printf("%s",
s);
//
输出的时候会直到遇到0,但你输入了3个字符,如果都没有0的话,那么就会继续输出乱码。
用scanf("%s",
s)来输入,这个要切记输入字符个数比数组个数少1个,然后printf输出就行了
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-12-22
int
main()
{
char
s[3];
int
i=
0;
for(
i
=
0;
i
<
3;
i++)
{
scanf("%c",&s[i]);
}
printf("%3.3s\n",s);
return
0;
}
格式说明:
printf("%[m][.n]s",
str
);
中括号,表示可选项,不是格式内容
m
输出最小宽度,单位字节,若str长度不足m,前补空格
.n
仅输出字符串str的前n位
main()
{
char
s[3];
int
i=
0;
for(
i
=
0;
i
<
3;
i++)
{
scanf("%c",&s[i]);
}
printf("%3.3s\n",s);
return
0;
}
格式说明:
printf("%[m][.n]s",
str
);
中括号,表示可选项,不是格式内容
m
输出最小宽度,单位字节,若str长度不足m,前补空格
.n
仅输出字符串str的前n位