这个问题有重复的风险,例如 从 C++ 中的字符串中删除双引号, 但我看到的所有答案都没有解决我的问题
我有一个字符串列表,其中一些是双引号,有些不是,引号总是在开头和结尾
std::vector<std::string> words = boost::assign::list_of("words")( "\"some\"")( "of which")( "\"might\"")("be quoted");
我正在寻找删除引号的最有效方法。这是我的尝试
for(std::vector<std::string>::iterator pos = words.begin(); pos != words.end(); ++pos)
{
boost::algorithm::replace_first(*pos, "\"", "");
boost::algorithm::replace_last(*pos, "\"", "");
cout << *pos << endl;
}
我能做得比这更好吗?我可能有数十万个字符串要处理。它们可能来自文件或数据库。示例中的 std::vector 仅用于说明目的。
原文由 molita 发布,翻译遵循 CC BY-SA 4.0 许可协议
进行检查可能会很快:
它可能不是有史以来最漂亮的东西,但它是 O(n) 的一个小常数。