C++中把char赋值给string?

最近在想怎么输入一段字符串,里面包含回车空格之类的,然后完整的把输入内容输出,但是发现程序输入的时候有时候按回车就直接输出结果,或者回车后字符串就截断了,刚刚试出了一个方... 最近在想怎么输入一段字符串,里面包含回车空格之类的,然后完整的把输入内容输出,但是发现程序输入的时候有时候按回车就直接输出结果,或者回车后字符串就截断了,刚刚试出了一个方法,源程序如下:
#include "iostream"
#include "string"
using namespace std;
void main()
{
string s1;
char s2;
while (cin.get(s2))
{
s1+=s2;
}
cout<<s1<<endl;
}
这样比如输入
he is a boy
he is very happy
然后就能原样输出。
但是程序里面涉及到把char 类型的s2赋值给string类型的s1,char是单个字符,string是字符串,这样赋值为什么可以?是发生什么类型转换了吗?
哪位能够指点一下非常感谢!
比如说s1="abc"s2='d',那就是s1="abc"+'d',是这么理解吗?是两个类型能相加还是string类重载了+=操作符?但是我直接赋值s1=s2也是可以的?
展开
 我来答
wlfd1234
推荐于2016-11-28 · TA获得超过1075个赞
知道小有建树答主
回答量:618
采纳率:0%
帮助的人:510万
展开全部
string 是类,不是数据类型,所以不能像int和char那样直接加减,给你个例子吧:
string s,temp;
char c = 'a';
temp = c;
s.append(temp);
cout << s << endl;
s.append(temp);
cout << s;
最后的结果就是:
a
aa
这是很笨的一个方法,但是也是我最常用的,因为我不能将char直接转换为string
湛蓝水晶
2010-04-13 · 知道合伙人数码行家
湛蓝水晶
知道合伙人数码行家
采纳数:1388 获赞数:9352
毕业北京科技大学数学与应用数学专业,学士学位,IT行业6年从业经验。现任公司项目经理。

向TA提问 私信TA
展开全部
while (cin.get(s2)) //按字符逐个获取到s2中
{
s1+=s2; //将获取的一个字符+到s1的末尾,不是赋值,是+=
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
orangemind
2010-04-13 · 超过28用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:0
展开全部
string类型不是基本类型,是一个类,s1是一个string对象,在string类里应该重载了+=操作符,此操作符右边可以接受char类型~你可以去搜一下c++ 的string类的实现,再看看运算符重载的知识。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式