uvaoj 1081510815 - Andy's First Dictionary(set应用)
输入一个文本,找出所有不同的单词,按字典序从小到大输出,单词不区分大小写。
使用string和set,输入时把所有非字母的字符改成空格,然后利用stringstream得到各个单词并存到set里面(set容器自动去重排序)
1 #include<bits/stdc++.h> 2 using namespace std; 3 set<string>dict; 4 int main() 5 { 6 string buf,s; 7 while(cin>>s) 8 { 9 for(int i=0; i<s.length(); i++) 10 { 11 if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')) 12 { 13 s[i]=tolower(s[i]); 14 } 15 else 16 { 17 s[i]=' '; 18 } 19 20 } 21 stringstream ss(s); 22 while(ss>>buf)dict.insert(buf); 23 } 24 for(set<string>::iterator it=dict.begin(); it!=dict.end(); it++) 25 { 26 cout<<*it<<"\n"; 27 } 28 return 0; 29 }