免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: liqxy
打印 上一主题 下一主题

[C] c语言问题:如何在文件中查找字符串? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-06-07 23:29 |只看该作者
原帖由 王威 于 2006-6-4 15:55 发表
学过数据结构吗?数据结构中有串的模式匹配算法,就可以解决你的问题

直接用strstr就可以吧,不用自己写这个算法

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:56:11
12 [报告]
发表于 2006-06-08 05:43 |只看该作者

回复 1楼 liqxy 的帖子

把文件按行读入内存,但要过滤掉换行符。然后用memcmp来找。

论坛徽章:
0
13 [报告]
发表于 2006-06-08 09:18 |只看该作者
原帖由 撒哈拉里的鱼 于 2006-6-7 15:43 发表
不行的,有的刚好跨行哦~~字符串。
我以前做过,是一个字母一个字母的比较。
—_—!


这个就要看文本编辑器了
像emacs这样的编辑器,它是不会在一个完整的串中间插入换行符的
unix下有不少这样 不随意插入 控制字符 的编辑器,windows 的 notepad就不行。

你如果考虑一个完整的串中间夹的有个  换行符  的话,
又有新的问题啊: 有两个串,本是互不相干的,他们中间刚好夹着一个换行符
你要是将换行符去掉的话,不就弄错了吗

本不应该匹配的,你却匹配上了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2010-08-05 10:00 |只看该作者
要是搜索的是中文怎么办?C中的strstr之类的好像只支持ASCII码

论坛徽章:
0
15 [报告]
发表于 2010-08-05 10:06 |只看该作者
你们真是跑的够远的,个人以为kmp是正确答案……

论坛徽章:
0
16 [报告]
发表于 2010-08-05 10:43 |只看该作者
你们真是跑的够远的,个人以为kmp是正确答案……
daybreakcx 发表于 2010-08-05 10:06



   UP

论坛徽章:
0
17 [报告]
发表于 2010-08-05 14:37 |只看该作者
KMP,  BM很多啦~

论坛徽章:
0
18 [报告]
发表于 2010-08-05 15:38 |只看该作者
  1. system("grep -file ** mate string")
复制代码

论坛徽章:
0
19 [报告]
发表于 2010-08-05 23:34 |只看该作者
kmp  bm
如果有换行符,如果内存允许就把整个文件读入内存 再kmp or bm
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP