现在的位置: 首页 > 综合 > 正文

C++字符串分割

2017年10月04日 ⁄ 综合 ⁄ 共 1002字 ⁄ 字号 评论关闭

         C++中的字符分割是一个常见的应用,下面是一个字符串分割的代码:

//================ 字符串分割 ============
vector<string> split_string(const string& str, const string& delimiters)
{
	vector<string> res;

	string split_str = str;
	size_t pos_delim = split_str.find(delimiters);

	while ( pos_delim != string::npos)
	{
		if (pos_delim == 0)
		{
			res.push_back("");
			split_str.erase(0, 1);
		}
		else
		{
			res.push_back(split_str.substr(0, pos_delim));
			split_str.erase(0, pos_delim + 1);
		}

		pos_delim = split_str.find(delimiters);
	}

	res.push_back(split_str);

	return res;
}

// 删除字符串前后空格
string del_space(string name)
{
	while ((name.find_first_of(' ') == 0)  && (name.length() > 0))
		name.erase(0, 1);

	while ((name.find_last_of(' ') == (name.length() - 1)) && (name.length() > 0))
		name.erase(name.end() - 1, name.end());

	return name;
}

// 测试
int _tmain(int argc, _TCHAR* argv[])
{
	string split_str="   Hello World, 中国, 一跃, 成为, 世界, 第二大, 经济体, 对世界经济将产生深远影响!   ";
	cout<<split_str<<endl<<endl;

	split_str = del_space(split_str);  // 删除空格

	cout<<split_str<<endl<<endl;

	vector<string> res;
	res = split_string(split_str, ",");
	for ( size_t i = 0; i<res.size(); i++)
	{
		cout<<res[i]<<endl;
	}

	getchar();
	return 0;
}

抱歉!评论已关闭.