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

stl string 使用指定的分隔符分割成数个子字符串

时间:2014-08-17 00:57:21      阅读:345      评论:0      收藏:0      [点我收藏+]

标签:blog   使用   os   io   for   ar   art   div   

#include <iostream>
#include <vector>
#include <string>
#include <algorithm>

using namespace std;

void StringSplit(const string& str,vector<string>& vStr,const char& division)
{
	int startPos = 0;
	int endPos = string::npos;
		
	startPos = str.find_first_not_of(division);
	while(startPos != string::npos)
	{
		endPos = str.find_first_of(division,startPos);
		if(endPos != string::npos)
		{
			string strSplit = str.substr(startPos,(endPos-startPos));
			vStr.push_back(strSplit);
		}else
		{
			string strSplit = str.substr(startPos);
			vStr.push_back(strSplit);
		}
		startPos = str.find_first_not_of(division,endPos );
	}


	return;
}


void PrintElement(const string& str)
{
	cout << str << endl;
}




int _tmain(int argc, _TCHAR* argv[])
{
	string str1 = "_1_dfg45d#$__123456789_1_dfg45d#$__123456789_1_dfg45d#$__123456789_1_dfg45d#$__123456789_1_dfg45d#$__123456789";
	string str2 = "__sdfsf_dfg45d#$__张三李四____sdfsf_dfg45d#$__张三李四____sdfsf_dfg45d#$__张三李四____sdfsf_dfg45d#$__张三李四__";
	string str3 = "(*^(*^(*_dfg45d#$__天天向上__(*^(*^(*_dfg45d#$__天天向上__(*^(*^(*_dfg45d#$__天天向上__(*^(*^(*_dfg45d#$__天天向上__";
	vector<string> vStr;
	StringSplit(str1,vStr,‘_‘);
	for_each(vStr.begin(),vStr.end(),PrintElement);
	cout << endl;
	vStr.clear();

	StringSplit(str2,vStr,‘_‘);
	for_each(vStr.begin(),vStr.end(),PrintElement);
	cout << endl;
	vStr.clear();

	StringSplit(str3,vStr,‘_‘);
	for_each(vStr.begin(),vStr.end(),PrintElement);
	cout << endl;
	vStr.clear();
	return 0;
}

  

stl string 使用指定的分隔符分割成数个子字符串,布布扣,bubuko.com

stl string 使用指定的分隔符分割成数个子字符串

标签:blog   使用   os   io   for   ar   art   div   

原文地址:http://www.cnblogs.com/itdef/p/3917113.html

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