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

c++文件字符串处理问题

hughyjy 发布于 2008-09-08 09:58, 1000 次点击
用C++写一个程序,将一个文本文件中的指定字符串解析并写到其它位置。我有几个问题不知道怎么解决,请指教:
1、要处理的文件可能很大,几M到几十M。能否一次将该文件读入内存,如果能的话应该用什么数据结构存储。如果不能的话该如何处理。
2、如何实现字符串的搜索。
3、如何实现文件中写入光标的定位
3 回复
#2
BlueMouse2008-09-08 11:26
“将一个文本文件中的指定字符串解析并写到其它位置”这个说清楚一点!

文件超过内存大小后当然就不能写入内存了! 建个临时文件来处理!

实现字符串的搜索可以用正则表达式!如果不能用正则表达式也可以自己来做!
方法是这样的!
如你要在文件中找“abcdf”
以下是文件的内容
-------------------------
aed aegde abcd aefdabcdf dage abcdf asdfefasd

首先从第一个字符开始对比如果第一个 a 是相同的则记下文件中这个a的位置! 再取得 abcdf 字符串的长度为5, 然后再从记下的a的位置后面连续取出 5-1 = 4 个字符判断取出的字符里是否有空格字符,如果有表明长度不对!肯定不是要找的字符串,跳过这个空格从空格的下一个字符开始生新对比,如果第一个字符和长度都对了!就依次取出目标字符串的各个后序字符来与源字符串中对应的位置的字符比较全部成立的就等于找到了该字符串了!

“如何实现文件中写入光标的定位” 这个也说清楚一点!
#3
blueboy820062008-09-08 12:30
我不知道有没有一次读入内存的需要,
但是你用匹配算法就能实现....
1