安迪的第一个字典(Andy's First Dictionary, UVa 10815)
前言:好好学习,天天向上。
问题:
输入一个文本,找出所有不同的字典(连续的字母序列),按字母序从小到大输出,单词不区分大小写。
样例输入:
Adventures in Disneyland
Two blondes were going to Disneyland when they came to a fork in the
road. The sign read: "Disneyland Left."
So they went home.
样例输出:(省略一部分)
a adventures blondes came disneyland fork going home
附上代码:
//P112 8.6 //安迪的第一个字典 #include <iostream> #include <string> #include <set> #include <sstream> using namespace std; set <string> dict; //string集合 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<<endl; return 0; }
发现一篇介绍string和stringstream的博文,大家可以看看。