如何在字符串中查找二进制数据?

blooming 2008-11-03 05:38:58

char *szBuf;

我有一个二进制文件,通过CFile::typeBinary模式读取到szBuf中。我想在这里面查找二进制串:0X42 0X00 0X45 0X00 0X47 0X00 0X49 0X00 0X4E 0X00,请问有什么方法?

CString::Find已经试过了,不行。
...全文
183 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
blooming 2008-11-05
  • 打赏
  • 举报
回复
由于没有别的好方法,后来只好用memcmp方法来做了。
likefermat 2008-11-03
  • 打赏
  • 举报
回复
1.strstr,这个函数遇到0的时候自动结束查找
2.memchr 这个函数查找单个字符
3.memcmp 这个可以比较两个串,如果相同返回0

根据你的问题,用memcmp
比较两个串就可以了,当前字节连续找n个如果和你想找的n个字符不一样,则从下一个字节继续比较n个,直到找到为止
太乙 2008-11-03
  • 打赏
  • 举报
回复
怎么试的??

贴代码看看~~
xhs_lh04 2008-11-03
  • 打赏
  • 举报
回复
"\x42\x00\x45\x00\x47\x00\x49\x00\x4e\x00"
用这样去查找试试

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧