将 php 函数添加到 c++ 的最快解决方案
字符串添加斜杠(字符串$str) 返回带有反斜杠的字符串 在数据库查询等中需要引用的字符之前。 这些字符是单引号 (')、双引号 (")、反斜杠 () 和 NUL(NULL 字节)。
我正在研究这个 php 函数的 C++ 等效项。现在,我的函数使用嵌套替换调用,其中我将 \ 替换为 \\,并将 ' 替换为 \'。它一点也不漂亮,而且速度也很慢。
仅使用标准 C++ 库和函数的最佳解决方案是什么?我的意思是绝对最快的方法。
string addslashes ( string $str )
Returns a string with backslashes
before characters that need to be quoted in database queries etc.
These characters are single quote ('), double quote ("), backslash ()
and NUL (the NULL byte).
I'm working on a c++ equivalent of this php function. Right now my function uses nested replace calls, where I replace \ with \\ and ' with \'. It's not pretty at all and it's very slow too.
What is the best solution using only the standard c++ libs and functions? I mean the absolute fastest way.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
for
循环)并在每个字符上switch
。使用
std::ostringstream
作为输出缓冲区。这是非常高效的(单通道、缓冲输出)并且易于实现。为了提高效率,可以直接使用 std::string 作为输出缓冲区,使用 Push_back 追加字符,并保留足够的空间。循环前面的大容量(例如
1.5 * input.length()
)。for
loop) andswitch
on each character.Use a
std::ostringstream
for the output buffer.This is very efficient (single pass, buffered output) and straightforward to implement. To make it yet more efficient, directly use a
std::string
as the output buffer, append the characters usingpush_back
, andreserve
a sufficiently large capacity (e.g.1.5 * input.length()
) in front of the loop.