2016-11-29 119 views
-1
const char * tag1[]={"abc","xyz"}; 

如何將tag1轉換爲std :: string?如何在std :: string中存儲const char * []?

std::string tag2(tag1) 

它只是將tag1 [0]複製到tag2。我想要的是將整個tag1數組轉換爲字符串。

任何想法或解決方法?

+5

你想實現什麼? 'string'是一個字符串,而不是一串字符串。 –

+0

@ Jean-FrançoisFabre:我只是想將整個tag1數組轉換爲單個字符串。 – secretgenes

+0

看一看:http://stackoverflow.com/questions/5689003/how-to-implode-a-vector-of-strings-into-a-string-the-elegant-way 注:陣列是邪惡的。 – Aneri

回答

4

既然你想C-字符串數組合併成一個的std :: string,你可以這樣做:

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

遍歷C字符串數組,並把它們添加到目的地的std :: string。

由於tag1中每個C字符串的末尾都有空終止符,因此tag1數組的直接副本將不能用於預分配的std :: string。你會得到abc\0xyz,而不是abcxyz

+1

可能計算的總大小和保留是一個更有效的沒有鯉魚代碼多 –

相關問題