将多个char *字符串格式化为std :: string

时间:2011-08-17 20:15:27

标签: c++

我有两个char *字符串和一个char * literal,我需要将它组合成一个std :: string。以下是我正在做的事情。它有效,但我不喜欢它看起来的样子(完成它的3行)。我想知道是否有更好的方法来做到这一点......

std::string strSource = _szImportDirectory;
strSource += "\\";
strSource += _szImportSourceFile;

谢谢你的帮助!

2 个答案:

答案 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:使用正确的代码更新