用C语言实现在txt文件中的查找与替换功能

baidu_32054243 2015-10-16 10:20:11
如何实现在txt文件中的查找与替换功能,能不能给代码和大量注解,想了好几天都没有头绪
...全文
809 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ooolinux 2015-10-16
  • 打赏
  • 举报
回复
数据结构(C语言)书里都有讲,串的模式匹配,我看的时候挺伤脑筋的,算法好不好,性能差距很大(比如对于几M的文本文件)。
lm_whales 2015-10-16
  • 打赏
  • 举报
回复
引用 2 楼 zhao4zhong1 的回复:
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
++ 这个最原始最单纯,也未必效率有多差,说不定是最好的
赵4老师 2015-10-16
  • 打赏
  • 举报
回复
参考Linux命令sed的源代码!
xian_wwq 2015-10-16
  • 打赏
  • 举报
回复
引用 楼主 baidu_32054243 的回复:
如何实现在txt文件中的查找与替换功能,能不能给代码和大量注解,想了好几天都没有头绪
字符串查询子串推荐BoyerMoore算法,效率很高
赵4老师 2015-10-16
  • 打赏
  • 举报
回复
所谓修改删除文件a某位置的内容,其实是读打开文件a,再将‘a中修改删除位置之前的内容+修改删除的内容+a中修改删除位置之后的内容’保存到文件b,关闭文件a,删除文件a,将文件b改名为与之前文件a相同的名字,仅此而已。
ipqtjmqj 2015-10-16
  • 打赏
  • 举报
回复
查找很简单吧, 比如文件的长度为N字节, 要查找的字符串长度为M字节 则循环N-M次, 每次得到的字符串与要查找的字符串比较. 如果相等, 就找到了. 替换的话, 先执行查找操作, 得到若干个要替换的字符串首字符的索引, 然后把文件写到内存中, 如查到要替换的字符串个数为N, 则执行2N+1次fread操作 接着用一次fwrite覆盖原文件.

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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