-6

string関数に渡してa の部分を更新する方法はありますか?

std::string str = "hello world";

たとえば、文字列の一部をインデックス 4 から 8 に逆にしたい。

文字列を開始インデックスから終了インデックスに反転する関数があります。文字列で自動的に更新されるように、インデックス 4 から 8 までの文字列をその関数に渡す方法str

4

3 に答える 3

4

なぜあなただ​​けを使用しないのですstd::reverseか?

std::string str = "hello world";
std::reverse ( str.begin() + 4, str.begin() + 8 );
于 2012-10-18T10:48:33.437 に答える
2

begin/end イテレータを取る関数を書きます。たとえば、std::reverse()を参照してください。std::vector の使用例は同じページにあります。

于 2012-10-18T10:46:22.407 に答える
1

参照によって文字列を渡すことができます。

void foo( std::string & inputString )
{
  //anything you do here will directly affect the string passed.
}

例えば:

void foo( std::string & str )
{
    str.append("World!");
}

int main()
{
    std::string a = "Hello, ";
    foo(a);
    std::cout << a;
    return 0;
}

「Hello, World!」と表示されます。もう 1 つの選択肢は、文字列の開始イテレータと終了イテレータを渡すことです。多くのstd機能はそのように機能します。

于 2012-10-18T10:46:08.540 に答える