社区
C++ 语言
帖子详情
如何对二进制数据进行字符串查找?
C20062222
2007-03-13 02:46:59
从一个二进制文件中读取的二进制数据,如何查找其中的是否包含某个字符串?
难道还要自己一个一个的比较?比较头大,字符串遇到/0就结束了
...全文
526
6
打赏
收藏
如何对二进制数据进行字符串查找?
从一个二进制文件中读取的二进制数据,如何查找其中的是否包含某个字符串? 难道还要自己一个一个的比较?比较头大,字符串遇到/0就结束了
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
C20062222
2007-03-13
打赏
举报
回复
strstr函数根本不可以,原因如下:
strstr实现如下:
static const char* _strstr(const char* s1, const char* s2)
{
assert(s2 && s1);
const char* p=s1, *r=s2;
while(*p!='\0')
{
while(*p++==*r++);
if(*r=='\0')
return p;
else
{
r=s2;
p=++s1;
}
}
return NULL;
}
由实现可以看出,函数遇到\0就结束了,从文件中读的数据可是有\0的
whoho
2007-03-13
打赏
举报
回复
if (pt != buf+20)
{
//找到了
}
else
{
//没有相应二进制子串
}
whoho
2007-03-13
打赏
举报
回复
std::search如:
#include <algorithm>
char buf[20] = "\x0\x3\x6\x0\x7";
char pattern[3] = {'\x6', '\x0', '\x7'};
char *pt = std::search(buf, buf+20, pattern, pattern+3);
Jokar
2007-03-13
打赏
举报
回复
对于简单的ASCII序列来说,二进制数据读进来后 正好是字符串对应的一个一个byte,也就是字符的ASCII码值的顺序序列呀,用现成的函数就可以了,和文本文件读出来的处理方式没太大区别。就用strstr吧
todototry
2007-03-13
打赏
举报
回复
okokok
fengfan
2007-03-13
打赏
举报
回复
好像是用strstr
我用这个的时候好像是可以越过 \0 继续查找的.
专业的
二进制
、文件、目录比较器 TKSDiff
1.2.1
二进制
快速比较 将两个以
二进制
格式打开的文件,逐个字节依次比较,以不同颜色标识出不同之处。 ● 支持差异导航,差异内容高亮显示; ● 支持大文件的比较(最大1.5G); ● 支持偏移量设定,用户可自定义文件比较时的起始地址,系统将分别从两个文件的起始地址处开始比较。 1.2.2
二进制
智能比较 将两个以
二进制
格式打开的文件,以
查找
最大不同
字符串
的方式比较,高亮显示出差异
字符串
。 ● 支持差异导航; ● 允许比较位移
数据
; ● 最大支持大小为几个M文件间的相互比较。文件差异越小比较速度越快。 非常的专业非常的好用 F4 F3 方便快速查看下一个上一个差异 支持
二进制
文件的搜索 Ctrl+F 增量搜索Ctrl+I 支持 比较结果的替换合并 支持 导出
二进制
文件
数据
将数字转换成文本的程序
将数字转换成文本, 如32转换成thirty two
二进制
数据
文件中的
字符串
替换的实现(C++)
二进制
数据
文件中的
字符串
替换的实现(C++) 文章目录
二进制
数据
文件中的
字符串
替换的实现(C++)前言一、项目环境一、项目需求二、思路分析三、实现过程1.
字符串
转十六进制字符2.替换功能总结 前言 在工作中遇到一个功能需求,就是读取一个资源文件,替换资源文件中某些字符,由于资源文件无法转化成
字符串
去替换,因为资源文件中有各种
数据
内容,那么怎么处理这个问题呢,我思考了几天想出一个较为完美的办法解决了这个问题,正文详细解说解决思路。 一、项目环境 VS2017下MFC程序 一、项目需求 读取一个资源文件(例
oracle 查
二进制
字符串
,
数据
类型-
字符串
和
二进制
串
字符串
类型Oracle 中有4 种基本的
字符串
类型,分别是CHAR、VARCHAR2、NCHAR 和NVARCHAR2。在Oracle 中,所有串都以同样的格式存储。在
数据
库块上,最全面都有一个1~3 字节的长度字段,其后是
数据
。1) CHAR():定长
字符串
,会用空格填充来达到其最大长度。最多可以存储2,000字节的信息。2) NCHAR():包含UNICODE格式
数据
的定长
字符串
。最多可以存储...
二进制
及相关概念是什么?
二进制
及相关概念是什么?
二进制
,八进制,十进制,十六进制…… N进制,逢N进位;
二进制
,逢2进1。
二进制
不便于人工阅读,人类最习惯理解的是十进制数,为了加快人类对
二进制
数的阅读与理解,于是人类发明八进制和十六进制做跳板来快速阅读
二进制
数据
。 在十进制中,一个数字的最右一位,即最低位称为个位,个位的左边一位,即更高一位叫十位,然后从右至左依次是百位千位。但是在其他进制
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章