0

私の文字列の長さは約14文字で、文字列のどこかから文字を一番前に移動する必要があり、すでに座っている文字を削除することはできませんmyString[0]. どうすればいいのですか?

4

2 に答える 2

1
std::string x = "foobar";
x.insert(0, 1, x[3]); // insert the 4th character at the beginning
x.erase(4, 1);  // erase the 5th character 
                // (5th because the preceding operation added a character

basic_stringのそれぞれのメンバー関数を参照してください。

于 2012-12-15T17:03:07.147 に答える
1

関数を使用する代わりに、 のstd::string関数を試すことができます<algorithm>

std::string x = "foobar";
std::rotate(x.begin(), x.begin() + 3, x.begin() + 4); // foobar -> bfooar

また:

std::reverse(x.begin(), x.begin() + 3); // foobar -> oofbar
std::reverse(x.begin(), x.begin() + 4); // oofbar -> bfooar

これらはどちらも文字列を変更せsize()ず、メモリの再割り当てをトリガーするべきではありません。

于 2012-12-15T17:16:24.680 に答える