| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5795 人关注过本帖
标题:如何从一个文件中搜索该单词并输出该单词~
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
收藏
已结贴  问题点数:20 回复次数:19 
如何从一个文件中搜索该单词并输出该单词~
简单就是先输入一个单词~然后从文件搜索看看有没有该单词~如果有就输出该单词~
我对文件不太熟悉希望能帮忙看看代码或者看看有什么高见~

@renkejun1942
~~~~~~~~~~~~~
程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    FILE *p;
    char s[3][10];
    char tem[10];
    scanf("%s",tem);
    int i=0;
    if((p=fopen("f:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }
    for(i=0;i<3;i++)
    {
            if(strcmp(tem,fgets(s[i],10,p))==0)
            {
                printf("%s\n",s[i]);
            }
    }
    fclose(p);
    return 0;
}//



[此贴子已经被作者于2017-6-17 22:00编辑过]

搜索更多相关主题的帖子: 单词 如何 
2017-06-17 21:51
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
现在有两个建议,一个建议存起来再对比,一个建议用正则表达式~这块我也不太清楚~~~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-17 22:00
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:10 
你直接调用我那个原子表函数啊,读取文件将所有单词添加到原子表再执行搜索。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-17 22:12
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
如果文件小,随便怎样都行,但是足够大的话,不用ADT 是不可能的。
读取单词我写过,你翻翻我的帖子 名字叫 分享两个函数。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-17 22:15
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
读取单词的函数并无问题,但是依旧需要判断一次输入是否是合法的单词。其实判断很简单只需要看看是不是全由字母或几个可以使用到单词中的符号组成。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-17 22:22
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:10 
需要算法啦
最笨的办法就是逐一比较 我就会这种
但是这种办法对于大文件來說。简直是灾难

DO IT YOURSELF !
2017-06-17 22:27
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
我睡了,明天要很早起床。你好好想想吧,一个合法的单词允许使用哪些符号。你把事情想复杂了。

09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-17 22:27
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
KMP好像有这么个算法

DO IT YOURSELF !
2017-06-17 22:29
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
问题已经简单解决了~
附加修改代码~
如果要文本可以参考一下~
f.rar (411 Bytes)

程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    FILE *p;
    char s[3][10];
    char t[3][10];
    char tem[10];
    int i=0;
    scanf("%s",tem);
   
    if((p=fopen("D:\\f.txt","r"))==NULL)
    {
        printf("cant open file");
        exit(0);
    }
    for(i=0; i<3; i++)
    {
        strcpy(t[i],fgets(s[i],10,p));
        t[i][strlen(t[i])-1]='\0';
        if(strcmp(tem,t[i])==0)
        {
            printf("%s\n",t);
        }
    }
    fclose(p);
    return 0;
}



[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-06-17 23:21
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
回复 9楼 九转星河
这文本也太小了,给你个稍微大点儿的,9800个无重复单词。
我正在找3W个单词以上的文本文件,看看我的原子表在搜索上效率如何。好吧,原子表并不是用来干这个的,但是我想了想,用在搜索上应该也很不错的。
1234.rar (28.65 KB)



[此贴子已经被作者于2017-6-18 05:54编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-06-18 05:36
快速回复:如何从一个文件中搜索该单词并输出该单词~
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019943 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved