C++编程中字符数组能存储空格吗?能输出空格吗?

#include<iostream>usingnamespacestd;intmain(){charc[5];for(inti=0;i<5;i++)cin>>c[i];c... #include<iostream>
using namespace std;
int main()
{
char c[5];
for(int i=0;i<5;i++)
cin>>c[i];
cout<<c;
return 0;
}
运行截图
为什么后面会出现乱码?我不是5个值都输入了吗?
还有如果输入中输入空格或回车在这个程序中是不是不造成任何影响?输了等于白输?
展开
 我来答
frankxieke
2013-10-14 · 计算机专业相关文档分享
frankxieke
采纳数:104 获赞数:253

向TA提问 私信TA
展开全部
首先输出乱码是因为c是一个字符串,cout的时候再这个字符串的最后面找不到'\0'结束符;
空格和回车就是一个字符,和你输入'a'是一样的,你输入空格,则输出空格,对于回车同理。
追问
怎样才能不输出乱码呢?
追答
以'\0'结尾字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
二弼萌8
推荐于2017-12-16 · TA获得超过666个赞
知道小有建树答主
回答量:1159
采纳率:0%
帮助的人:327万
展开全部
您是按照字符串输出的,但是c[5]后面并不是字符串结尾符号('\0')。
lz可以这么做,char c[6];
c[5] = '\0'
然后再进行下面的。
更多追问追答
追问
空格和回车不能保存在数组里吧?
追答
能保存,数组可以保存任何数据。
lz这个不是空格和回车的问题,是结尾符的问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
2013-10-15 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3594万
展开全部
字符串需要以0结尾,所以稍微修改一下程序:
#include<iostream>
using namespace std;
int main()
{
char c[6];
for ( int i=0;i<5;i++ ) cin>>c[i];
c[5]=0; //字符串结尾用赋值实现

cout<<c;
return 0;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
never715
2013-10-15 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:451万
展开全部
楼上两位很好的解答的楼主的疑惑!
字符串变量(包括数组)一般会申请出大于实际字符串长度空间一个字节,用于存放\0,使得输出到终端的时候有该结尾符终止。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式