string
クラスは、指定された文字列に新しい値を割り当てる方法assign
を提供します。私はあなたが5つ目のようなものを探しているのだと思うcplusplus.com(それは非常にC++標準ライブラリのリファレンスを詳述あなたを与えるので、私はこのサイトをお勧めします。)
:署名は、ソースを引用
1. string& assign (const string& str);
2. string& assign (const string& str, size_t pos, size_t n);
3. string& assign (const char* s, size_t n);
4. string& assign (const char* s);
5. string& assign (size_t n, char c);
6. template <class InputIterator>
string& assign (InputIterator first, InputIterator last);
ですn
は文字列の長さを指定し、c
文字をこの文字列に入力します。例えば、あなたが書く場合、
sTemp.assign(10, 'b');
あなたの文字列は10 bで完全に満たされます。
私はもともとSTLアルゴリズムstd::fill
を使用することを提案しましたが、文字列の長さは変更されません。メソッドstring::resize
は、文字列のサイズを変更する方法を提供し、付加された文字を所定の値で塗りつぶしますが、追加された文字のみが設定されます。最後にstring::assign
が最良の方法です!
なぜ投票ダウン?理由を記したコメントを少なくとも残してください。この方法でしか学ぶことができません! – phlipsy
私はdownvoteをしませんでしたが、可能ならば他の#includeは必要ありません –
あなたが気づいたように、文字列のサイズを変更することができないので、fillは良くありません。 resizeは最初の文字を使用して文字列内の新しい文字を初期化するだけです(サイズ変更後)。元の文字列はそのままです。それらは「コンストラクタを再度呼び出す」という望ましい効果とは一致しません。適切な機能が割り当てられます。 –