-1
const char * tag1[]={"abc","xyz"};
如何将tag1转换为std :: string?如何在std :: string中存储const char * []?
std::string tag2(tag1)
它只是将tag1 [0]复制到tag2。我想要的是将整个tag1数组转换为字符串。
任何想法或解决方法?
const char * tag1[]={"abc","xyz"};
如何将tag1转换为std :: string?如何在std :: string中存储const char * []?
std::string tag2(tag1)
它只是将tag1 [0]复制到tag2。我想要的是将整个tag1数组转换为字符串。
任何想法或解决方法?
既然你想C-字符串数组合并成一个的std :: string,你可以这样做:
std::string tag2;
for (auto ptr : tag1) {
tag2.append(ptr);
}
遍历C字符串数组,并把它们添加到目的地的std :: string。
由于tag1中每个C字符串的末尾都有空终止符,因此tag1数组的直接副本将不能用于预分配的std :: string。你会得到abc\0xyz
,而不是abcxyz
可能计算的总大小和保留是一个更有效的没有鲤鱼代码多 –
你想实现什么? 'string'是一个字符串,而不是一串字符串。 –
@ Jean-FrançoisFabre:我只是想将整个tag1数组转换为单个字符串。 – secretgenes
看一看:http://stackoverflow.com/questions/5689003/how-to-implode-a-vector-of-strings-into-a-string-the-elegant-way 注:阵列是邪恶的。 – Aneri