我有两个char *字符串和一个char * literal,我需要将它组合成一个std :: string。以下是我正在做的事情。它有效,但我不喜欢它看起来的样子(完成它的3行)。我想知道是否有更好的方法来做到这一点......
std::string strSource = _szImportDirectory;
strSource += "\\";
strSource += _szImportSourceFile;
谢谢你的帮助!
答案 0 :(得分:8)
std::string strSource = std::string(_szImportDirectory) + "\\" + _szImportSourceFile;
是一种显而易见的方式。
另一种方法是使用std::stringstream
:
std::stringstream s;
s << _szImportDirectory << '\\' + _szImportSourceFile;
std::string strSource = s.str()
这是最灵活和可维护的方式,但它仍然需要三行。
答案 1 :(得分:2)
这样的东西?
std::string str = std::string(_szImportDirectory).append("\\").append(_szImportSourceFile);
PS:使用正确的代码更新