lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
you are my friend #
4
view:map的简单应用,注意多个空格的坑点;
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<iostream>
#include<map>
#define max_n 2000000
using namespace std;
char ch[max_n],s[max_n];
map<string,int> q; //map的对应关系;
int main()
{
while(1)
{
q.clear(); //清空map ;
gets(ch);
if(ch[0]=='#') break;
int len=strlen(ch);
ch[len]=' ';
int k=0,sum=0;
bool flag=false;
for(int i=0;i<=len;i++)
{
if(ch[i]!=' ')
{
s[k++]=ch[i];
flag=true;
}
else if(flag)
{
flag=false;
s[k++]='\0'; //切记注意字符串结束标志;
if(q[s]==0)
{
q[s]=1;
sum++;
}
k=0;
}
}
//map<string,int>::iterator it;//it是指针类型,迭代器把it定义成指针型结构体;
//for(it=q.begin();it!=q.end();it++) //map的开始和结束;
//cout<<it->first<<endl; //如果是字符串用c++,如果是其他的,直接printf;
printf("%d\n",sum);
//printf("%d\n",q.size()); map的大小,和sum值一样;
}
return 0;
}