题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2072
要计算不同的单词数,就需要比较,可以用set容器,因为在set中,重复元素不会插入,这样容器的长度就是不同的单词数
#include <iostream>
#include<set>
#include<string>
using namespace std;
int main()
{
string str,str1;
set<string> se;
int i;
bool flag;
while(getline(cin,str)&&str[0]!='#')
{
flag=false;
se.clear();
for(i=0;i<str.size();i++)
{
if(str[i]==' '&&flag)//如果输入的是空格,则不会保存到容器中
{
flag=false;
if(str1!="")
se.insert(str1);
str1=""; //清除str1,为下次存储单词做准备
}
else
{
flag=true;
if(str[i]!=' ')
str1+=str[i];
}
}
if(str1!="") //将最后一个单词存入容器中
{
se.insert (str1);
str1="";
}
cout<<se.size()<<endl;
}
return 0;
}