思路:
读入字符串后,先进行大小写统一,并将标点符号转换为空格,方便使用stringstream函数进行切分。然后存入集合中,并最后输出即可。
#include <iostream>
#include <string>
#include <set>
#include <sstream>
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);
while(ss >> buf) dict.insert(buf);
}
for(set<string>::iterator it = dict.begin(); it != dict.end(); ++it)
cout << *it << "\n";
return 0;
}