-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

编写一个带有开始/结束迭代器的函数。例如,参见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!”。另一种选择是传递字符串的开始和结束迭代器。很多std功能都是这样工作的。

于 2012-10-18T10:46:08.540 回答