• 词频统计


    题目:词频统计

    开发语言:C++

    开发工具:Visual Studio 2013

    源码:词频统计.cpp


    1要求

         实现一个控制台程序,给定一段英文字符串,统计其中各个英文单词(4字符以上含4字符)的出现频率。 附加要求:读入一段文本文件,统计该文本文件中单词的频率。

    2、计划

         思路用10min,编写程序2h

    3、时间

         在实际编程中,想出第一个思路用时几分钟,但是将它编写成初步框架不容易,弃。后来又想了几个思路,当与实际编程挂钩时都不太好实现。最后还是参考了网上的一些资 源

    4、源码

    #include"stdafx.h"
    #include<iomanip>
    #include<cstring>
    #include <iostream>//
    using namespace std;
    struct word{//单词结构
        char c[30];//放置单词
        int n;//放置单词出现次数
    }w[10000];
    
    void  main(void)
    {
        char b[30], Str[30000];//定义单词数组,字符串数组
        int i = 0, m = 1, k = 0, flag = 0, x = 0;
        cout << "请输入字符串:";
        while (cin.get(Str[x]), Str[x++] != '
    ');//从空格开始读取单词字符
        Str[x - 1] = '';
        x = 0;
        while (Str[x]){
            if ('A' <= Str[x] && Str[x] <= 'Z' || 'a' <= Str[x] && Str[x] <= 'z') {//判断是否是单词
                b[i++] = Str[x];//如果是的话将字符放到单词数组中
                
                flag = 1;
            }
            else if (flag){
                b[i] = '';
                flag = m = 0;
                for (i = 0; i<k; i++){
                    if (strcmp(b, w[i].c) == 0){//比较单词是否相同
                        m = 1;
                        break;
                    }
                }
                if (!m){
                    w[k].n = 1;
                    strcpy_s(w[k++].c, b);//不相同就保存
                }
                else w[i].n++;//相同,出现次数加1
                i = 0;
            }
            x++;
        }
        for (i = 0; i<k; i++)
            cout << w[i].c << "   " << w[i].n << endl;//依次输出单词结构中的单词和个数
        cout << endl;
    }

    5、运行结果


    6、小结

         我以为程序只要有思路,细节什么的再按照具体语言填充就好了。但是这次作业想了几个思路,我都不好把它们C++程序化,果然是想的太简单了,而且感觉问题好像又回到“编程思想”上了。

        另外,在这次作业中我还学到了关于指针计数和结构体的一些用法。


    参考:

          统计字符串中单词的个数      

         输入一段英文文本,用程序统计出现频率最高和最低的两个单词

       

  • 相关阅读:
    GridView点击行触发SelectedIndexChanged事件
    javascript 功能大全
    scrollHeight、offsetHeight、clientHeight
    鸟哥的 Linux 私房菜
    谈谈对程序员的培养
    UTF8编码中的BOM字符 引起Session/Cookies失效
    “Request 对象 错误 'ASP 0104 : 80004005' 不允许操作
    生成网站,如何不生成.pdb文件?
    小心swfupload 的cookie Bug
    使用vbs脚本检查网站是否使用asp.net
  • 原文地址:https://www.cnblogs.com/-XQ-/p/5280837.html
Copyright © 2020-2023  润新知