/*

题目描述
编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。
例如:对于句子“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

Jennifer
2018-02-04 20:25:47

*/
/*   运行时间过长
#include<iostream>
#include<string>
#include<set>
#include<cctype>
using namespace std;
int main()
{
 set<string> s;
 string str;
 while(cin.peek()!='\n')
 {
     cin>>str;
     s.insert(str);
 }
 cout<<s.size();
 return 0;
}
*/
#include <iostream>
#include <sstream>    //引用istringstream
#include <set>
#include <string>
#include <cstdio>
using namespace std;

int main() {
    char str[10000];
    gets(str);
    set<string> arr;
    istringstream ss(str);   //用stringstream可以用来分割空格、tab、回车换行隔开的字符串:
    string word;
    while(ss>>word)
    {
        arr.insert(word);
    }
    cout << arr.size()<< endl;
    return 0;
}

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐