【发布时间】:2015-03-01 18:24:09
【问题描述】:
我遇到了麻烦,我无法自己解决这个问题..
// string::operator+= vs +
#include <iostream>
#include <string>
using namespace std;
int main ()
{
unsigned char array[6]= { 'f','o','o','b','a','r' };
string name ("works and not");
cout << name<< endl;
name ="";
for(int i=0; i < 6; i++)
name += array[i];
cout << "working: "<< name << endl;
name ="";
name = array[1] + array[0] + array[0] + array[3] + array[4] + array[5];
cout <<"not working: "<< name << endl;
return 0;
}
现在我知道+= 表示法中有一些隐藏的转换,我明白了,加号添加了我的字符的整数,
并且只是将最终值转换为“p”。
但是我需要将各种字符组合成一个字符串..如果可能的话在一行中.. 因为我需要不止一次(600++ 次)这样做,而且它已经把代码弄乱了。
因为这是第一次,而且很可能是最后一次我需要将我的“数组”值转换为字符串,所以我宁愿不更改我的 char 数组。
谢谢!
【问题讨论】:
-
用于测试:ideone.com/XfSEYw
-
“我需要做不止一次(600++ 次)” 这里有巨大的代码气味。
-
LOOL OMG...TY 轻盈!!
标签: c++ string char type-conversion