C++ 如何在std::string中存储常量char*[]?

C++ 如何在std::string中存储常量char*[]?,c++,c++11,c++14,C++,C++11,C++14,如何转换std::string中的tag1 const char * tag1[]={"abc","xyz"}; 它只是将tag1[0]复制到tag2。我想要的是将整个tag1数组转换为字符串 有什么想法或解决方法吗?因为您想将C字符串数组合并到一个std::string中,所以可以执行以下操作: std::string tag2(tag1) 迭代C-strings数组并将它们附加到目标std::string 将tag1数组直接复制到预先分配的std::string将不起作用,因为tag1中

如何转换std::string中的tag1

const char * tag1[]={"abc","xyz"};
它只是将tag1[0]复制到tag2。我想要的是将整个tag1数组转换为字符串


有什么想法或解决方法吗?

因为您想将C字符串数组合并到一个std::string中,所以可以执行以下操作:

std::string tag2(tag1)
迭代C-strings数组并将它们附加到目标std::string


将tag1数组直接复制到预先分配的std::string将不起作用,因为tag1中每个C字符串的末尾都有空终止符。您将获得
abc\0xyz
,而不是
abcxyz

您想要实现什么
string
是一个字符串,而不是字符串列表。@Jean-FrançoisFabre:我只是想将整个tag1数组转换为一个字符串。请看一看:数组是邪恶的。在不太挑剔代码的情况下,计算总大小和保留可能更有效
std::string tag2;   
for (auto ptr : tag1) {
    tag2.append(ptr);   
}