sta*_*ser 6 c++ replace stringstream
我想知道是否可以使用 std::replace 将字符串流中的双引号替换为单引号。
我有:
std::replace(
std::ostreambuf_iterator<char>(ssScript),
std::ostreambuf_iterator<char>(),
'"', '\''
);
Run Code Online (Sandbox Code Playgroud)
但当然 ostreambuf_iterator 没有默认构造函数,因此无法编译。
是否有另一种方法可以像这样在内联字符串流中替换字符的出现?
该类std::stringstream提供了一个用于操作流的接口,而不是其内容。要操作流的内容,您必须获取字符串,对其进行操作,然后将字符串放入流中,如下所示:
#include <iostream>
#include <sstream>
#include <algorithm>
#include <string>
int main(void)
{
std::stringstream ss;
ss << "\"this is a string in a stream\"";
std::cout << "Before: " << ss.str() << std::endl;
std::string s = ss.str();
std::replace(s.begin(), s.end(), '"', '\'');
ss.str(s);
std::cout << "After: " << ss.str() << std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你得到:
之前:“这是流中的字符串”
之后:“这是流中的字符串”
| 归档时间: |
|
| 查看次数: |
10830 次 |
| 最近记录: |