zoukankan      html  css  js  c++  java
  • 词频统计器(第二版)

    功能:输入一个txt文件,输出文件中的总单词数及每个单词的出线次数

    要求1:控制台下输入命令

    结果:

    代码:

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<fstream>
    #include<string>
    #include<map> 
    #include <iomanip>
    using namespace std;
    int main()
    {
        FILE *fp1;
    	char text[1024];
    	char s[100];
    	gets(s);
    	//fp1=fopen("d:\2.txt","r");
    	fp1=fopen(s,"r");
    	int n=0;
    	int i;
        map<string,int>my_map;
    	while(fgets(text,1024,fp1)!=NULL)
    	{
    		//puts(text);
    		i=0;
    		while(text[i]!='')
        	{
        		char s[30];
        		int j=0;
        		while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
        		{
        			if(text[i]>='A'&&text[i]<='Z')
        			text[i]+='a'-'A';
        			s[j++]=text[i++];	
    			}
    			s[j]='';
    			if(my_map[s]==0)
    			n++;
    			my_map[s]++;
    			if(text[i]=='') break;
    			else
    			i++;
    		}
    		
    	}
    	fclose(fp1);
    	map<string,int>::iterator it;
    	cout<<"total"<<"  "<<n<<endl<<endl;
    	for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
    	{
    		if(it->first=="")
    		continue;
    		cout<<left;
    		cout<<setw(10)<<it->first<<setw(10)<<it->second;
    		if(i%4==0)
    		cout<<'
    ';
    	}
    	cout<<'
    ';	
    	return 0;
    }
    

    要求2:支持命令行输入英文作品的文件名

    结果:

    代码:见要求1代码

    要求3:支持命令行输入存储有英文作品文件的目录名,批量统计。(未完成)

    要求4:从控制台读入英文单篇作品

    结果:

    代码:

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<fstream>
    #include<string>
    #include<map> 
    #include <iomanip>
    using namespace std;
    int main()
    {
        FILE *fp1;
    	char text[1024];
    	char s[100];
    	//gets(s);
    	fp1=fopen("d:\卖火柴的小女孩.txt","r");
    	//fp1=fopen(s,"r");
    	int n=0;
    	int i;
        map<string,int>my_map;
    	while(fgets(text,1024,fp1)!=NULL)
    	{
    		puts(text);
    		i=0;
    		while(text[i]!='')
        	{
        		char s[30];
        		int j=0;
        		while((text[i]>='a'&&text[i]<='z')||(text[i]>='A'&&text[i]<='Z'))
        		{
        			if(text[i]>='A'&&text[i]<='Z')
        			text[i]+='a'-'A';
        			s[j++]=text[i++];	
    			}
    			s[j]='';
    			if(my_map[s]==0)
    			n++;
    			my_map[s]++;
    			if(text[i]=='') break;
    			else
    			i++;
    		}
    		
    	}
    	fclose(fp1);
    	map<string,int>::iterator it;
    	cout<<"total"<<"  "<<n<<endl<<endl;
    	for(it=my_map.begin(),i=1;it!=my_map.end();it++,i++)
    	{
    		if(it->first=="")
    		continue;
    		cout<<left;
    		cout<<setw(10)<<it->first<<setw(10)<<it->second;
    		if(i%4==0)
    		cout<<'
    ';
    	}
    	cout<<'
    ';	
    	return 0;
    }
    

    coding.net    git@git.coding.net:w547240561/myboke.git

              https://git.coding.net/w547240561/myboke.git

  • 相关阅读:
    JQuery 图片轮播
    js版的虚线框
    折叠菜单,选择下拉(手风琴)
    logstash的index值可以为中文
    假如正则从来没来过,我们该如何去匹配一个字符串?
    深度解析javascript中的浅复制和深复制
    笔试题
    前端笔试题总结---持续更新
    清除浮动
    一步一步的理解闭包
  • 原文地址:https://www.cnblogs.com/wangsen123/p/5868072.html
Copyright © 2011-2022 走看看