C++字符串与字符数组的连接

4

这种方法可行吗?

char* array = "blah blah";
char* array2 = "bloh bloh";
string str = string() + array + array2;

无法直接执行string str = array + array2,不能添加两个指针。或者我应该这样做:
string str();
str += array;
str += array2;

不,混合低级和高级类型是不好的。 - usoban
顺便提一下,这段代码不再是有效的C++代码(使用C++11),即使在使用旧版C++时也应该生成警告,因为它使用了已弃用的非const char*文字。此外,由于最令人烦恼的解析,第二个代码无论如何都无法编译。 - Konrad Rudolph
1
@usoban:std::string 定义从 char*std::string 的转换是有原因的。有时你必须处理 char*,而且没有其他方法。 - Ed S.
2个回答

4

我会写:

string str = string(array) + array2;

请注意,您的第二个版本不是有效的代码。您应该删除括号:
string str;
str += array;
str += array2;

最后,arrayarray2应该是constchar *类型。

@user1112008:我不确定我理解你的问题。 - NPE
我只需要将2个(或更多)字符数组粘贴到字符串中。 - user1112008

3

有很多方法可以做到这一点:

string str(array);
str += array2;

或者

string str = string(array) + array2;

甚至更多
string str = array + string(array2);

或字符串流:
stringstream ss;
ss << array << array2;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接