#include<iostream>
#include<set>
#include<algorithm>
#include<string.h>
#include<string>
using namespace std;
typedef long long LL;

int main(){
	string s1,s2;
	set <string> ss;
	while(cin>>s1){
		for(int i=0;i<s1.size();i++){
			if(isalpha(s1[i])){
				s1[i]=tolower(s1[i]);
				s2+=s1[i];
			}
			else{
				if(s2.size()){//非常重要,否则输出一个空行。
					ss.insert(s2);
				s2.clear();
				}
			}
		}
		if(s2.size()){同理一定要判断一下是不是空
			ss.insert(s2);
			s2.clear();
		}
	}
	set <string>::iterator it;
	for(it=ss.begin();it!=ss.end();it++){
		cout<<*it<<endl;
	}
}

先将字符串用一个string 存储,再遍历string。如果是字母,就转成小写加到另一个string中。如果不是,便将另一个string中的加到set中。遍历完成后,将答案加到set中。注意判断为空。