• 词频统计器(第二版)


    功能:输入一个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

  • 相关阅读:
    php 上传大文件配置upload_max_filesize和post_max_size选项
    phpstorm version 2016.2 License Server激活
    ubuntu 14.04 下通过apt-get 安装jdk
    SSH远程会话管理工具
    mysql配置命令 CHARACTER_SET_%字符集设置
    mysql 的max_connections和max_user_connections 的区别
    ActiveMQ基于JMS的pub/sub传播机制
    ActiveMq入门实例
    Java JMS
    LockSupport学习
  • 原文地址:https://www.cnblogs.com/wangsen123/p/5868072.html
Copyright © 2020-2023  润新知