字符串分割

找工作,面临着要笔试,而编程题的一些小的函数有时候又很需要,平时简单记一下小的函数,以后用到,直接复制粘贴就行。

将字符串按照某个字符分割成若干个字符串,

如"a,b,bbbb,ccc"按照‘,’分割成“a”、“b”、“bbbb”、“ccc”

如“:a:b:d:”按照‘:’分割成 “空”“a”、“b”、“d”、“空”(注意,冒号在两端,所以有空)

vector<string> split(const string s, char seperator) {
	vector<string> result;//最终返回的结果
	typedef string::size_type string_size;
	string_size i = 0;  //记录当前下标
	string_size j=0;  //记录上一个为seperator的下标
	for (i = 0; i < s.size(); i++)
	{
		if (s[i] == seperator )
		{
			result.push_back(s.substr(j, i - j));
			j = i + 1;
		}
	}
//下面是为了判断字符是不是在字符串的最右边,如果不是,在最后插入最后一个分割的字符串;如果是,插入空
	if (s[s.size() - 1] != seperator) result.push_back(s.substr(s.rfind(seperator) + 1));
	else if (s[s.size() - 1] == seperator)result.push_back("");
	return result;
}

猜你喜欢

转载自blog.csdn.net/hjxu2016/article/details/80941627