- 题目大意
给出一段文章,然后将其中不重复的单词拿出来(全为小写并且由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;
}