c++ - 在 C++ 中比较 buffer 和 const char*

标签 c++ string comparison

将内存缓冲区与常量字符串进行比较的正确 C++ 方法是什么 - strcmp(buf, "sometext")?我想避免由于创建临时 std::string 对象而导致不必要的内存复制。

谢谢。

最佳答案

如果您只是检查相等性,您可以使用 std::equal

#include <algorithms>

const char* text = "sometext";
const int len = 8; // length of text

if (std::equal(text, text+len, buf)) ...

当然,如果您的缓冲区可以小于文本,这将需要额外的逻辑

关于c++ - 在 C++ 中比较 buffer 和 const char*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/877758/

相关文章:

c++ - 从结构化数组中读取信息

c++ - 一个简单的 getch() 和 strcmp 问题

java - 从字符串计算下一个值

wcf - 我的测试表明 .NET Remoting 比 WCF 4 快 1.5 倍

javascript - 比较 jQuery 中对象的 InnerHTML

c++ - 以 double 返回错误代码

c++ - 我可以在现代 Intel Core CPU 上测量分支预测失败吗?

c++ - 非字符串文字是纯右值?

c++ - 如何隐藏类的私有(private)成员?

string - 在R中查找另一个字符串中的一个字符串