创建包含多个变量的大字符串的最佳方法?

Run*_*ble 4 c++ string string-concatenation

我想创建一个包含许多变量的字符串:

std::string name1 = "Frank";
std::string name2 = "Joe";
std::string name3 = "Nancy";
std::string name4 = "Sherlock";

std::string sentence;

sentence =   name1 + " and " + name2 + " sat down with " + name3;
sentence += " to play cards, while " + name4 + " played the violin.";
Run Code Online (Sandbox Code Playgroud)

这应该产生一个读取的句子

弗兰克和乔坐下来与南希打牌,而夏洛克则拉小提琴.

我的问题是:实现这一目标的最佳方法是什么?我担心不断使用+运算符是无效的.有没有更好的办法?

Fru*_*nsi 8

是的std::stringstream,例如:

#include <sstream>
...

std::string name1 = "Frank";
std::string name2 = "Joe";
std::string name3 = "Nancy";
std::string name4 = "Sherlock";

std::ostringstream stream;
stream << name1 << " and " << name2 << " sat down with " << name3;
stream << " to play cards, while " << name4 << " played the violin.";

std::string sentence = stream.str();
Run Code Online (Sandbox Code Playgroud)