有没有办法通过在函数中传递它来更新string
的部分?
std::string str = "hello world";
我想反转部分字符串,例如从索引4到8。
我有一个函数可以将字符串从开始索引转换为结束索引。如何将索引4到8的字符串传递给该函数,以便它在str
字符串中自动更新。
答案 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
函数都是这样的。