文字列を特定の長さに分割する必要があり"0123456789asdf"
ます."0123"
"4567"
"89as"
"df"
これを行うための最良の方法を実際に理解することはできません-強力な各サブユニットでさらに処理を行う必要があるため、ループにする必要があります。ティア。
編集:元の文字列の長さはわかりません。必要なチャンクのサイズしかわかりません。また、指定された長さの文字列のチャンクと、残りの文字列を含む最後のチャンク(指定された長さより短い場合) が必要です。
string str("0123456789asdf");
for (unsigned i = 0; i < str.length(); i += 4) {
cout << str.substr(i, 4) << endl;
}
std::string
コンストラクター引数として範囲を取ることができます (コンストラクター 6 )。これを使って:
char const str[] = "0123456789asdf";
std::string x(str, str + 4); // "0123"
ここで、str
とは、概念str + 4
と互換性のある char 配列への文字へのポインターです。ForwardIterator
(ポインタはイテレータです)