8

文字列を特定の長さに分割する必要があり"0123456789asdf"ます."0123""4567""89as""df"

これを行うための最良の方法を実際に理解することはできません-強力な各サブユニットでさらに処理を行う必要があるため、ループにする必要があります。ティア。

編集:元の文字列の長さはわかりません。必要なチャンクのサイズしかわかりません。また、指定された長さの文字列のチャンクと、残りの文字列を含む最後のチャンク(指定された長さより短い場合) が必要です。

4

2 に答える 2

27
string str("0123456789asdf");

for (unsigned i = 0; i < str.length(); i += 4) {
    cout << str.substr(i, 4) << endl;
}
于 2013-05-23T08:52:27.327 に答える
0

std::stringコンストラクター引数として範囲を取ることができます (コンストラクター 6 )。これを使って:

char const str[] = "0123456789asdf";
std::string x(str, str + 4); // "0123"

ここで、strとは、概念str + 4と互換性のある char 配列への文字へのポインターです。ForwardIterator(ポインタはイテレータです)

于 2013-05-23T08:43:47.207 に答える