const char * tag1[]={"abc","xyz"};
std :: stringのtag1をどのように変換するのですか?std :: stringにconst char * []を格納するには?
std::string tag2(tag1)
タグ2にtag1 [0]をコピーするだけです。私が望むのは、tag1配列全体を文字列に変換することです。
アイデアや回避策はありますか?
const char * tag1[]={"abc","xyz"};
std :: stringのtag1をどのように変換するのですか?std :: stringにconst char * []を格納するには?
std::string tag2(tag1)
タグ2にtag1 [0]をコピーするだけです。私が望むのは、tag1配列全体を文字列に変換することです。
アイデアや回避策はありますか?
使用すると、1つのstd ::文字列にC-文字列の配列をマージするので、あなたはこれを行うことができます:C-文字列配列の上に
std::string tag2;
for (auto ptr : tag1) {
tag2.append(ptr);
}
反復を、宛先のstd ::文字列にそれらを追加します。
tag1配列の事前割り当てstd :: stringへの直接コピーは、tag1の各C文字列の末尾にヌルターミネータがあるため機能しません。あなたはabcxyz
の代わりにabc\0xyz
を得るでしょう。
おそらく、合計サイズを計算して予約することは、コードを大幅に修正することなく –
何を達成したいですか? 'string'は文字列であり、文字列のリストではありません。 –
@ Jean-FrançoisFabre:タグ1の配列全体を単一の文字列に変換したいだけです。 – secretgenes
見てください:http://stackoverflow.com/questions/5689003/how-to-implode-a-vector-of-strings-into-a-string-the-elegant-way 注意:アレイは悪です。 – Aneri