注册 登录
编程论坛 C++教室

新手求教编写一个对比文本的程序

adzshu 发布于 2013-03-04 19:48, 241 次点击
文本A
第一行:01 02 03 04 05 06
第二行:02 03 04 05 06 07

文本B
第一行:05 06 07 08 09 10
第二行:01 02 03 04 05 06
第三行:03 04 05 06 08 10
第四行:02 03 04 05 06 07

(文本B为总表,文本A为文本B中的某一部分集合,文本A所有的行在文本B中一定存在)
思路:获取文本A第一行数字/字符 "01 02 03 04 05 06"
查询文本B,然后在新建文本中输出"01 02 03 04 05 06"在文本B中所对应的行号为第二行
继续获取文本A第二行数字/字符"02 03 04 05 06 07"
查询文本B,然后在新建文本中输出"02 03 04 05 06 07"在文本B中所对应的行号为第三行
重复上述操作
直到文本A的最后一行,全部行号输出,保存新建文本
不知道要怎么编写这程序..小白求教高手..感谢..


[ 本帖最后由 adzshu 于 2013-3-4 19:55 编辑 ]
2 回复
#2
wp2319572013-03-04 22:09
用字符串比较函数吧
#3
rjsp2013-03-05 08:36
1。先读文本B,获得 vector< pair<string,size> > bs; 其中 string 为B的行内容,size 为行号
2。将 bs 以 string 排序,若 string 相同,以 size 决定先后顺序
3。读文本A的每一行,分别用 lower_bound 在 bs 中二分查找,取出行号,…… 就是这么简单呀
1