题目大意:题目不难理解,对一段输入,把其中的单词拆出来,然后排序
学到的知识点:set集合,弄得还不是很透彻,主要是迭代器的用法还要深入了解;string类型的应用,变成“流”了很好玩,对其的应用也更加多了,方便了
#include<iostream>
#include<string> //定义ss类型
#include<set> // 定义set集合
#include<sstream> //运用stringstream
using namespace std;
set<string>dict;
int main()
{
string s, buf;
while(cin >> s)
{
for(int i = 0; i < s.length(); i++)
{
if(isalpha(s[i])) s[i] = tolower(s[i]); //转换成小写
else s[i] = ' '; //分开各个单词
}
stringstream ss(s);
/*创建存储s的副本的 stringstream 对象,其中s是 string 类型的对象
一旦建立就能像流一样对ss进行读和写了*/
while(ss >> buf) //将ss中的单词写入buf中
dict.insert(buf) ;//向集合中添加单词, 并且排序
}
for(set<string>::iterator it = dict.begin(); it != dict.end(); ++it) // ++it与it++有区别吗??
cout << *it << endl; //*it和指针很类似啊
return 0;
}