码迷,mamicode.com
首页 > 其他好文 > 详细

F - Andy's First Dictionary (UVA - 10815)

时间:2018-02-10 14:06:01      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:std   cin   ret   一段   i++   div   and   空格   iter   

- 题目大意

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

  

F - Andy's First Dictionary (UVA - 10815)

标签:std   cin   ret   一段   i++   div   and   空格   iter   

原文地址:https://www.cnblogs.com/alpacadh/p/8438516.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!