这样做的好方法是什么?用char数组连接C++字符串
char* array = "blah blah";
char* array2 = "bloh bloh";
string str = string() + array + array2;
不能做直接string str = array + array2
,不能加2个指针。或者我应该这样做
string str();
str += array;
str += array2;
这样做的好方法是什么?用char数组连接C++字符串
char* array = "blah blah";
char* array2 = "bloh bloh";
string str = string() + array + array2;
不能做直接string str = array + array2
,不能加2个指针。或者我应该这样做
string str();
str += array;
str += array2;
我会写:
string str = string(array) + array2;
需要注意的是你的第二个版本is not valid code。您应该删除括号:
string str;
str += array;
str += array2;
最后,array
和array2
应const
char *
类型。
它不会将它追加到str? – user1112008
@ user1112008:我不知道我理解你的问题。 – NPE
我只需要粘连2个(或更多)字符数组到字符串。 – user1112008
有很多方法可以做到这一点:
string str(array);
str += array2;
或
string str = string(array) + array2;
甚至
string str = array + string(array2);
或字符串流:
stringstream ss;
ss << array << array2;
不,混合低级别和高级别类型并不好。 – usoban
顺便说一句,这段代码不再是有效的C++(使用C++ 11),并且即使在使用旧版C++来使用不推荐的非const char *文字时也应该生成警告。此外,由于[最令人头疼的解析],第二个代码无法编译(http://stackoverflow.com/q/1424510/1968)。 –
@usoban:'std :: string'定义了从'char *'到'std :: string'的转换。有时你有一个'char *'来处理,而且没有办法绕过它。 –