安迪的第一个字典(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的博文,大家可以看看。