标题:求一个数据结构简单实验
只看楼主
a598651640
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-10-12
结帖率:0
已结贴  问题点数:20 回复次数:5 
求一个数据结构简单实验
求大神自助,急用。。
建立一个文本文件,其内容如下。对于任一给定的单词,在该文本中找寻匹配的字符串,输出结果Information security means protectinginformation and information systems from unauthorized access, use, disclosure,disruption, modification, or destruction. The terms information security,computer security and information assurance are frequently usedinterchangeably.具体要求:1、实现文件的读取操作,而不是将文本以字符串形式预存于程序中2、进行单词匹配时,不区分大小写3、统计需要匹配的单词在该文本中出现的次数和位置(即该单词是文本的第几个单词),并输出。
搜索更多相关主题的帖子: 区分大小写 computer security 文本文件 systems 
2016-04-06 10:24
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:10 
只是简单调试了下,有问题你再找我。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxLength 1000
void main()
{
    int count = 0,len = 0;
    FILE *fp;
    char *in;
    char *serch;
    char *ret = NULL;
    char tou, wei;
    char *s = (char *)malloc(maxLength);
    in = (char *)malloc(maxLength);
   
    memset(s, 0, maxLength);
    fp = fopen("test.txt", "r+");
    if (fp == NULL)
    {
        printf("open file failed\n");
        return;
    }
    fgets(s, maxLength, fp);
    s = _strlwr(s);    //转换成小写
    fclose(fp);
    printf("read file success %s\n",s);

    printf("请输入单词:\n");
    scanf("%s",in);
    in = _strlwr(in);    //转换成小写
    len = strlen(in);
   
    serch = s;
    while (1)
    {
        ret = strstr(serch, in);
        if (ret != 0)
        {
            /* 单词的头和尾是空格或者, */
            tou = *(ret - 1);
            wei = *(ret + len);
            //printf("%c %c", *(ret - 1), *(ret + len));
            if (((ret == s) || (tou == ' ') || ((tou == ',')))
                && ((wei == ' ') || (wei == '.') || (wei == ',')))
            {
                count++;
            }
            serch = ret + len;
        }
        else
        {
            break;
        }
    }
    printf("%s出现的次数是%d次\n",in, count);
}
2016-04-06 12:13
grmmylbs
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:54
帖 子:1409
专家分:5845
注 册:2016-2-14
得分:0 
你在同目录下创建一个test.txt,并输入内容。
另外没有考虑输入的单词带空格或者逗号的情况(比如information systems当做一个单词),你可以自行添加。
2016-04-06 12:17
a598651640
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2015-10-12
得分:0 
回复 2楼 grmmylbs
非常感谢您,做得特别好,只是有点缺陷就是数据的位置没有显示在第几个。
2016-04-06 15:53
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
得分:10 
回复 4楼 a598651640
位置的话貌似你只要自己加个计数器就好了。你都学到数据结构了,这个应该不难办吧

φ(゜▽゜*)♪
2016-04-06 19:55
也只是怕
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2022-5-23
得分:0 
位置怎么加计数器啊,有完整的代码吗
2022-05-23 16:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463308-1-1.html




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

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