如何将char和char *附加到现有字符串?

时间:2013-02-17 20:34:15

标签: c++ char string-concatenation

初始化字符串后,可以在同一行中添加char和char *:

char mod;//this comes in as a parameter
string line = "text";
line += mod;
line += "more text";

是否有更有效和/或可能是单行的方式来做到这一点?像

这样的东西
string line = "text" + mod + "more text";

4 个答案:

答案 0 :(得分:3)

由于char *不是字符串,因此您的单行无效,因此您无法使用+将它们与char s连接起来;你最后得到一个指针添加。如果你想要一个单行,你可以使用

string line = string("text") + mod + "more text";

但这不会比你的3行有效。

答案 1 :(得分:2)

你可以做你的第一个片段(你会发现只是通过编译!),但不是你的第二个。

您还可以考虑使用std::stringstream

std::stringstream ss;
ss << "text" << mod << "more text";

答案 2 :(得分:1)

您必须确保+的第一个操作数是std::string

string line = string("text") + mod + "more text";

然后string("text") + mod的结果是std::string,并且可以附加"more text"

答案 3 :(得分:1)

运算符+=返回非const引用,因此可以堆栈+=。这有点尴尬和不寻常,看起来像这样:

string line = "text";
(line += mod) += "more text";