C++类型转换之char转string

1.遇到的问题

最近项目在做去Qt化,没办法,Qt确实好用,但是要安装qt库,为了和各个现场的环境一致,只能用原汁原味的C了。
QT拼接字符串:

QString qstrDevPoint = QString("{TYPE:%1CONTENT:%2,COMPRESS,").arg(COM_FUNC_MSG_8).arg(g_pFeAcess->m_facName.c_str());
qstrDevPoint += QString("%1,%2,%3;").arg(info.offset).arg(info.var.un.uch).arg(info.var.time1.tv_sec);

这里面有个参数info.var.un.uch是char类型,刚开始用C++的string拼接的时候,找了好半天不知道char怎么转string。就直接拼在后面了,

string qstrDevPoint = "{TYPE:";
qstrDevPoint += to_string(COM_FUNC_MSG_8);
qstrDevPoint += "CONTENT:";
qstrDevPoint += g_pFeAcess->m_facName;
qstrDevPoint += ",COMPRESS,";
.....
qstrDevPoint += info.var.un.uch;//char

结果是令我出乎意料的"\000",正常输出应该为"0"。找了好多资料,用过网上说的stringstream,无用;其他还有更麻烦的方法,就不说了,没有一个成功的。

2.意外的惊喜

前不久刚接触的字符串处理函数,里面有个to_string(),我一看,参数里面没有char型啊,当时也是被网上的说法给带偏了,脑子乱了,一直在用to_string,但是刚碰到char型,就把这茬给忘了。
在这里插入图片描述
最后真的是没办法了,抱着试试看的心态,用了to_string

qstrDevPoint += to_string(info.offset);//int
qstrDevPoint += ",";
qstrDevPoint += to_string(info.var.un.uch);//char -> string
qstrDevPoint += ",";
qstrDevPoint += to_string(info.var.time1.tv_sec);
qstrDevPoint += ";";

赶紧一试,看到结果是0时,真的是哭笑不得。虽然to_string没有参数为char的,但是char可以转为int,所以对char类型,也可以使用to_string方法转为string

3.结语

码代码呢,就是这样,有时候被一个小问题折磨的头疼。第一次遇到问题,也许会多走弯路,但是在解决问题的过程中,也会学到不少东西,这大概也正是编程的魅力所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值