std:string中的C++十六进制搜索失败
C++ Hex search in std:string failed
我有一个std:string。我想找到十六进制的模式"0x789c"。根据stackoverflow中的另一个线程,我已经这样做了:
int nPosD = buffer.find("x78x9C");
并尝试
int nPosD = buffer.find(std::string("x78x9C"),2);
没有成功!回报是-1!我的模式0x789c在我的字符串中!我已经用HexEdit软件测试过了。
有人对此有想法吗?
非常感谢:)
问候,
int nPosD = buffer.find(std::string("x78x9C"),2);
将查找缓冲区中从第3个字符(偏移量2)开始的字符串"\x78\x9c"。如果它没有出现在该点或之后,它将返回-1。如果要从头开始搜索整个字符串,请去掉2
以下对我有效:
char data[] = {'A', 0x78, 0x9C};
string buffer(data, 3);
cout << buffer.find("x78x9C") << endl;
它应该打印"1"。它在没有首字母A的情况下也能正常工作。你可能把字符串设置错了。它可能在ascii中包含"0x789c",而不是二进制,在这种情况下,您希望执行find("0x789c")
。
相关文章:
- 如何在openssl-ecc中获取十六进制格式的私钥
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 将字符指针十六进制转换为字符串并保存在文本文件C++中
- 如何将一个ostringstream十六进制字符串字符对转换为单个unit8t等价的二进制值
- 如何在C++中用std::cout正确显示带十六进制的字符串文本
- 通过错误处理,在C++中可靠地获得用户十六进制输入
- 为什么mpfr_printf与十六进制浮点(%a转换说明符)的printf不同
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 指向存储在字符串 c++ 中的十六进制
- 读取文件中所有可能的十六进制 16 字节序列并打印每个序列
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何在C++中将十六进制字符串转换为文本数据
- 使用 sprintf 将十六进制0xAABBCC转换为字符串"AA:BB:CC"
- 绝对编码器十六进制输入
- 为什么C++总是显示十六进制内存地址,而不仅仅是整数?
- C++17 十六进制浮点文字单精度后缀冲突?
- 是否可以在C++中获取 CHAR 的有效十六进制地址?
- 打印十六进制字符
- std:string中的C++十六进制搜索失败