/**************************************************************
程序功能:从终端上输入一段正文,将每个出现的单词存入一数组,
要求重复出现的单词能记下该单词的出现次数。
***************************************************************
目前能通过编译,但是不能正确运行,输入数据一回车就死!
**************************************************************/
#include "iostream.h"
#include "string.h"
struct pair
{
char *name;
int val;
};
const int large=600;
static pair vec[large];
pair * find(char *p)
{
for(int i=0; vec[i].name;i++)
{
if (strcmp(p,vec[i].name)==0) return &vec[i];
if (i==large) return &vec[large-1];
return &vec[i];
}
}
int & value(char *p)
{
pair *res=find(p);
if(res->name==0)
{
res->name=new char [strlen(p)+1];
strcpy(res->name,p);
res->val=0;
}
return res->val;
}
const int max=255;
main()
{
char buf[max];
while (cin >> buf) {value(buf)++;}
for (int i=0;vec[i].name;i++)
{
cout<<vec[i].name<<":"<<vec[i].val<<"";
}
}