我有一个包含'个字符的字符串。我想用\'替换所有它们,因为这是用于插入数据库的。有人可以建议我这样做的有效方法吗?不幸的是,我不能使用boost并且仅限于STL。
最佳答案
不要忘记在源字符串中出现\
时也将其转义。
std::string escape(std::string const &s)
{
std::size_t n = s.length();
std::string escaped;
escaped.reserve(n * 2); // pessimistic preallocation
for (std::size_t i = 0; i < n; ++i) {
if (s[i] == '\\' || s[i] == '\'')
escaped += '\\';
escaped += s[i];
}
return escaped;
}