在c ++中更新字符串的一部分

时间:2012-10-18 10:42:09

标签: c++ string updating

有没有办法通过在函数中传递它来更新string的部分?

std::string str = "hello world";

我想反转部分字符串,例如从索引4到8。

我有一个函数可以将字符串从开始索引转换为结束索引。如何将索引4到8的字符串传递给该函数,以便它在str字符串中自动更新。

3 个答案:

答案 0 :(得分:4)

为什么不使用std::reverse

std::string str = "hello world";
std::reverse ( str.begin() + 4, str.begin() + 8 );

答案 1 :(得分:2)

编写一个带有开始/结束迭代器的函数。例如,请参阅std::reverse()。 std :: vector的用法示例在同一页面上。

答案 2 :(得分: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函数都是这样的。