lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数。下面你的任务是帮助xiaoou333解决这个问题。
Input
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束。
Output
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
Sample Input
you are my friend
Sample Output
4
问题来源:https://vjudge.net/problem/HDU-2072
问题分析:一行一行读入字符串,统计该行有几个单词。单词之间只有空格分割。
AC通过的代码:
#include<iostream>
#include<cstdio>
#include<sstream>
#include<set>
using namespace std;
int main()
{
string s;
while (getline(cin, s) && s != "#")//getline直到你输入了回车或者你自己设定的结束符,str这个字符串才会被输出。
{
istringstream sin(s);//istringstream类用于执行C++风格的串流的输入操作,需要用到#include<sstream>
set<string>words;
string w;
while (sin >> w)
words.insert(w);
cout << words.size() << endl;
}
return 0;
}