编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。
说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。
输入
输入只有一行,即一个英文句子。
输出
输出只有一行,是一个整数,表示句子中不同单词的个数。
样例输入
one little two little three little boys
样例输出
5
#include <iostream>
#include <sstream>
#include <set>
#include<cstdio>
using namespace std;
int main() {
string str;
char c[101];
set<string> set;//set不会存放相同的元素
gets(c); //读到数组
str=c; //转化为string
istringstream ss(str); //利用string流,自动去除空格
string word;//再定义一个字符串数组,用于存放:去除空格的每个单词
while(ss>>word) {//将去除空格后的单词一个一个地写入到word中
set.insert(word);//如果set里面没有,就会将该单词加入进去,否则,就会不会加进去
//set里面的同一个值是惟一的.
//补充:multiset中同一值可以出现多次.
}
cout << set.size()<< endl;//set里面保存的元素个数size即为:句子中不同单词的个数。
return 0;
}