私は今までよりも少ない情報でこの質問をしました。いくつかのヌル終了文字を含む文字配列を別の文字列に解析する - C++
本質的には、char型のデータブロックです。このブロックには、フォーマットしてベクターに入れる必要があるファイル名が含まれています。私は当初、このcharブロックの形成に各ファイル名の間に3つのスペースがあると考えました。さて、私はそれらが '/ 0'ヌル終了文字であることを認識しています。そこで提供されたソリューションは、空の文字ではなくスペースがあると思ったときに私が与えた例では素晴らしいものでした。
構造は次のようになります。また、私は指摘する必要があります私は文字データブロックのサイズがあります。
filename1.bmp/0/0/0brick.bmp/0/0/0toothpaste.gif/0/0/0
最善の解決策は、それをやった方法がこれだった:
// The stringstream will do the dirty work and deal with the spaces.
std::istringstream iss(s);
// Your filenames will be put into this vector.
std::vector<std::string> v;
// Copy every filename to a vector.
std::copy(std::istream_iterator<std::string>(iss),
std::istream_iterator<std::string>(),
std::back_inserter(v));
// They are now in the vector, print them or do whatever you want with them!
for(int i = 0; i < v.size(); ++i)
std::cout << v[i] << "\n";
これは私の元の質問のための素晴らしい作品が、実際に彼らはヌル文字の代わりにスペースはありません。上記の例を動作させる方法はありますか?配列内のnull文字をスペースで置き換えようとしましたが、うまくいきませんでした。
文字列のベクトルにこのcharブロックをフォーマットする最も良い方法に関するアイデアはありますか?
ありがとうございました。
std::replace(std::begin(), std::end(), 0, ' ');
を...そしてそこから行く:スペースは、適切な区切りになりたい場合
名前にスペースを入れていただきありがとうございます。道路の下で大きな頭痛を避けた。 –