Andy's First Dictionary
程序员文章站
2022-05-14 09:05:33
...
题目见uva 10815
意思是将一段话中的所有不同单词转化为小写按字典序输出。
注意We’re good friend!
输出结果应该是:
friend
good
re
we
被空格符号等分割的看做两个单词。
利用set中string已经重载了<,将所有单词插入set容器输出即可。
#include<iostream>
#include<cstring>
#include<string>
#include<set>
using namespace std;
set<string>words;
int main(){
string s;
while(cin>>s){//以EOF结束
string ss;
int len=s.length();
for(int i=0;i<len;i++){
if(isalpha(s[i])){//为字母转为小写,ss存储
s[i]=tolower(s[i]);
ss+=s[i];
}
else{
if(ss.length()){//如果不是字母,则看当前ss中是否有单词,有则插入set
words.insert(ss);
ss.clear();//记得清空
}
}
}
if(ss.length()){//扫描完一个连续的,判断ss中是否有单词
words.insert(ss);
ss.clear();
}
}
for(set<string>::iterator it=words.begin();it!=words.end();it++){
//if((*it)!=' ')
cout<<*it<<endl;
}
return 0;
}
上一篇: thinkphp 中使用的函数