- 题目大意
给出一段文章,然后将其中不重复的单词拿出来(全为小写并且由a-z的顺序)。
- 解题思路
我在网上看到的一个stringstream函数,它除了进行字符串和数字转换之外的另一个用途:分割单词。将字符串中所有非单词字符全部转换为空格,然后再用代码中的方法分割出单词。有这种方法就好做多了。结合set容器即可。
- 代码
#include<iostream> #include<set> #include<string> #include<sstream> using namespace std; int main() { set<string>num; string c; string s1; while (cin>>c) { for (int i = 0; i < c.size(); i++) { if (isalpha(c[i])) { c[i] = tolower(c[i]); } else c[i]=‘ ‘; } stringstream s2(c); while(s2 >> s1) num.insert(s1); } set<string>::iterator iptr; for (iptr = num.begin(); iptr != num.end(); iptr++) { cout << *iptr << endl; } return 0; }