| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1298 人关注过本帖
标题:希望能写出一个用来记录在一个文本中每个单词出现的次数的程序出来,我自己 ...
取消只看楼主 加入收藏
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
结帖率:97.22%
收藏
已结贴  问题点数:38 回复次数:7 
希望能写出一个用来记录在一个文本中每个单词出现的次数的程序出来,我自己也试着写过,但是没有太多的思绪。
因为是对着书练,所以也没有人指点,希望能写出一个(最好打上注解)实例或写出思路来指引我前进,谢谢。(我已经把棺材本拿出来了,大虾们想想办法啊)

最好能先告诉我整个程序的解题思路和方案,我还想不明白的话在给实例。
搜索更多相关主题的帖子: 最好 
2012-10-23 18:58
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
补充一下,因为我还没学到指针,所以最好不要用到它。

I have not failed completely
2012-10-23 19:00
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
回复 4楼 寒风中的细雨
对,用c写,我正好离指针差一课....

I have not failed completely
2012-10-23 19:30
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
回复 7楼 jueshidouzi
可这是习题啊,何况我也希望自己的逻辑思维变得强一些,实在不行就写个实例吧,我看懂掌握了方法也行的。

I have not failed completely
2012-10-23 20:32
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
回复 6楼 TonyDeng
恩,我再试试吧,方便的话麻烦把例子也写上去吧,这样就算我做出来了也可以用来做对照,看看自己的不足。

I have not failed completely
2012-10-23 20:37
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
其实我已经想了好几天了,我主要是希望能理解,书上也只要求能读懂,因为以我的能力真的很难做出来,所以我认为得先看得懂再实践,还请版主理解。

I have not failed completely
2012-10-23 20:54
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
我勒个去....那我只能边学边等了。

I have not failed completely
2012-10-23 22:26
神龙赖了
Rank: 10Rank: 10Rank: 10
来 自:萨塔星
等 级:青峰侠
威 望:2
帖 子:711
专家分:1788
注 册:2012-10-13
收藏
得分:0 
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <ctype.h>
#define TEXTLEN 10000
#define BUFFERSIZE 100
#define MAXWORDS 500
#define WORDLEN 15

int main(void)
{
    char text[TEXTLEN]={0};
    char buffer[BUFFERSIZE]={0};
    char jieshu[]="*\n";

    const char kongge=' ';
    const char danying='\'';

    char words[MAXWORDS][WORDLEN+1];
    int nword[MAXWORDS];
    char word[WORDLEN+1];
    int wordlen=0;
    int wordcount=0;
    int i;
    int index;
    bool isnew=true;

    printf("这个程序能算出每个单词出现的次数");
    printf("\n请输入文本:\n\n");

    while(true)
    {
        if(!strcmp(fgets(buffer,BUFFERSIZE,stdin),jieshu))
            break;
        if(strlen(text)+strlen(buffer)+1>TEXTLEN)
        {
            printf("这已经是文本容量的最大值了。");
            return 1;
        }
        strcat(text,buffer);
    }
    for(i=0;i<strlen(text);i++)
    {
        if(text[i]==danying||isalnum(text[i]))
            continue;
        text[i]=kongge;
    }
    index=0;
    while(true)
    {
        while(text[index]==kongge)
            index++;
        if(text[index]='\0')
            break;
        wordlen=0;
        while(text[index]==kongge||isalpha(text[index]))
        {
            if(wordlen==WORDLEN)
            {
                printf("这已经是单词长度的最大值了。");
                return 1;
            }
            word[wordlen++]=tolower(text[index++]);
        }
        word[wordlen]='\0';
        
        for(i=0;i<wordcount;i++)               在这里就开始摸不清头脑了
            if(strcmp(word,words[i])==0)         wordcount代表什么?为什么要把它定义为0?
            {                                    输出结果也不对,
                ++nword[i];                      只用解析这下面的一段就行了,谢谢
                isnew=false;
                break;
            }
            isnew=true;
            if(isnew)
            {
                if(wordcount>=MAXWORDS)
                {
                    printf("\n对不起,单词个数已经超过了最大值。\n");
                    printf("(我们不能得到这个结果)\n");
                    return 1;
                }
                strcpy(words[wordcount],word);
                nword[wordcount++]=1;
            }
    }
    for(i=0;i<wordcount;i++)
    {
        if(!(i%3))
            printf("\n");
        printf(" %-15s%5d",words[i],nword[i]);
    }
    return 0;
}

输出不对,求解(我知道写的很乱,所以不用再强调了...)

I have not failed completely
2012-10-26 20:07
快速回复:希望能写出一个用来记录在一个文本中每个单词出现的次数的程序出来,我 ...
数据加载中...
 
   



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

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