1221:单词统计问题
Description
巨硬公司(huge-hard)最近计划出品一个字处理软件。软件基本功能已经完成,但还缺少一个单词统计的功能,你的任务就是为该公司写一段程序,完成统计功能。
需要统计的信息有两项:出现单词的个数和单个单词出现的次数。
需要统计的信息有两项:出现单词的个数和单个单词出现的次数。
Input
输入为一行字符串,即要统计的文本。
Output
输出由若干行组成,第一行是一个整数,表示单词的个数,从第二行开始,每行由字符串、冒号、整数组成,其中字符串是一个出现在文本中的单词,整数则是该单词在文本中出现的次数。
Sample Input
to know everything is to know nothing
Sample Output
7
everything:1
is:1
know:2
nothing:1
to:2
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int main()
{
char a[1000];
int b[1000];
string str[5000];
int n,i,j,k,h;
gets(a);
n=strlen(a);
int count=0;
for(i=0; i<n; i++)
{
if(a[i]=='\40')
count++;
}
cout<<count+1<<endl;
j=0;
int temp=0,abc;
for(i=0; i<n; i++)
{
abc=i;
if(a[i]=='\40')
{
for(k=temp; k<abc; k++)
{
str[j]=str[j]+a[k];
}
temp=i+1;
j++;
if(j==count)
{
for(h=i+1; h<n; h++)
str[j]=str[j]+a[h];
}
}
}
int index;
for(i=0;i<count;i++)
{
index=i;
for(j=i+1;j<count+1;j++)
{
if(str[index]>str[j])
index=j;
}
if(index!=i)
{
str[100]=str[i];str[i]=str[index];str[index]=str[100];
}
}
int c[100];
for(i=0; i<=count; i++)
{
if(str[i]==a)
continue;
c[i]=1;
for(j=i+1;j<count+1;j++)
{
if(str[i]==str[j])
{
str[j]=a;
c[i]++;
}
}
}
for(i=0;i<count+1;i++)
{
if(str[i]!=a)
{
cout<<str[i]<<":"<<c[i]<<endl;
}
}
return 0;
}