C++ STL练习题2 给定一个数字字符串,按5分隔出整型数据,从小到大输出

 
 
Sample Input
0051231232050775
 


 

Sample Output
0 77 12312320
#include<set>
#include<string>
#include<iostream>
#include <sstream>
using namespace std;

int main()
{
	string str1 = "0051231232050775";
	string tempstr;
	
	set<int> set1;
	for (int i = 0; i < str1.size(); i++)
	{
		if (str1[i] != '5')
		{
			tempstr.push_back(str1[i]);//没有遇到5,就将字符写入到临时string
		}
		else if(!tempstr.empty())//遇到5且临时string不为空
		{
			istringstream iss(tempstr);//将临时字符串加载到string输入流
			int tempint;
			iss >> tempint;//从string输入流获取一个int
			set1.insert(tempint);
			tempstr.clear();//插入到集合之后就清空
		}
	}

	for (set<int>::iterator p = set1.begin(); p != set1.end(); p++)
	{
		cout << *p << ' ';
	}
	return 0;
}
输出结果: 0 77 12312320

猜你喜欢

转载自blog.csdn.net/tobe_numberone/article/details/80344680
今日推荐