如何比较两个以行为单位的两文件一致性?

清钟沁桐 2010-12-24 01:25:41
我有两个文件,他们以行为单位进行匹配(忽略空格),如果一致则提示OK,负责提示fail,并指明两个文件的差异,如何实现这个功能呢 ?大家觉得应该使用什么算法比较合适
...全文
171 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
清钟沁桐 2012-01-31
  • 打赏
  • 举报
回复
然后将文本文件中的字符串进行排序,即可使用简单的对比来确认两者的一致性了
清钟沁桐 2012-01-31
  • 打赏
  • 举报
回复
首先将文本文件格式化,也就是连续空格大于一个以上,格式化为一个空格,这样就避免字符串的语义识别了
清钟沁桐 2011-01-09
  • 打赏
  • 举报
回复
multiset<T>是一种允许出现重复元素的集合容器,和集合基本相同,但可以支持重复元素具有快速查找能力。

如果使用multiset<T>,那如何处理空行(没有文本字符)呢?
luciferisnotsatan 2010-12-24
  • 打赏
  • 举报
回复
用两个set,有重复的话用multiset。每一行为一个元素放进set里,然后看看两个set是否相等
wxf54318 2010-12-24
  • 打赏
  • 举报
回复
这个需要一些字符串比较的算法了,可以参考KMP算法,把一个文件的一行作为另一个文件一行的子串,比较ASCII码!
ryfdizuo 2010-12-24
  • 打赏
  • 举报
回复
ZHONG这个要进行语义识别?有意义的字符串不能拆分,
清钟沁桐 2010-12-24
  • 打赏
  • 举报
回复
file1:
ab 12 cd
ab12cd3 45ef
ZHONG

file2:
ab12cd3 45ef
ZHONG
ab 12 cd
file3:

ab12cd3 45ef
ZHO NG
ab 12 cd
file1和file2仅仅存在顺序以及字符串间空格差异,算一致
file3和file2由于ZHONG是一个字符串,被拆分成两个字符串,这样算不一致,此时需要找出文件file2中的第一行在file3中找不到一致的行
dubiousway 2010-12-24
  • 打赏
  • 举报
回复
file1

ab 12cd 345e f



file2:

ab12cd3 45ef

======
这两个文件算一致是吗?


file3:

ab9 1 2c 8d 4ef


不一致是吗,你说的"指明差异",怎么描述?

64,282

社区成员

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

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