如何在std :: string中存储const char * []?

时间:2016-11-29 09:48:07

标签: c++ c++11 c++14

const char * tag1[]={"abc","xyz"};

如何在std :: string中转换tag1?

std::string tag2(tag1)

它只是将tag1 [0]复制到tag2。我想要的是将整个tag1数组转换为字符串。

任何想法或解决方法?

1 个答案:

答案 0 :(得分:4)

由于您想要将C字符串数组合并为一个std :: string,您可以这样做:

std::string tag2;   
for (auto ptr : tag1) {
    tag2.append(ptr);   
}

迭代C-strings数组并将它们附加到目标std :: string。

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