安迪的第一个字典,紫书P112UVa10815

来源:互联网 发布:淘宝违规词查询工具 编辑:程序博客网 时间:2024/05/29 23:46

这道题的思路很直接,但是刘的代码优化的非常精简到位。里面蕴含了很多c++语言细节知识。
本题要点:
1.set容器的用法:
a.集合—每个元素只出现一次。
b.集合内的元素会自动按字母从小到大顺序排列好。
2.string容器及stringstream的用法。
3.isalpha(s[i])判断字符s[i]是否为字母,是则返回TRUE。
4.tolower(s[i])若s[i]为大写字母则返回其小写字母,否则返回其本身。toupper()函数反之。这两个函数都在stdio.h头文件中。
5.set::iterator迭代器的简单使用。(比赛前重点复习)

// UVa10815 Andy's First Dictionary// Rujia Liu#include<iostream>#include<string>#include<set>#include<sstream>using namespace std;set<string> dict;string s, buf;int main() {  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 << "\n";  return 0;}
原创粉丝点击