C++ 用来分割字符串的函数

该函数接受一个字符串s,一个用于存储分割结果的vector,以及一个分隔符字符串。它将s按照delimiters分割,并将结果存入tokens。对于包含连续分隔符或首尾分隔符的情况,也会正确处理空字符串。
摘要由CSDN通过智能技术生成
// 传入参数
// std::string& s:要分割的字符串
// vector<std::string>& tokens:用来储存分割后的n个字符
// std::string& delimiters:分隔符
void split(const std::string& s, std::vector<std::string>& tokens, const std::string& delimiters)
{
	size_t current, previous = 0;
	current = s.find(delimiters);
	while (current != std::string::npos) {
		tokens.push_back(s.substr(previous, current - previous));
		previous = current + delimiters.length();
		current = s.find(delimiters, previous);
	}
	if (previous < s.size())
		tokens.push_back(s.substr(previous, s.size() - previous));
}

示例一

std::string s = "1,2,3";
vector<std::string> vs;
split(s,vs,",")
/*函数执行后
vs的大小为3
其中
vs[0] = 1; vs[1] = 2; vs[2] = 3;
*/

示例二

std::string s = ",2,";
vector<std::string> vs;
split(s,vs,",")
/*函数执行后
vs的大小为3
其中
vs[0] = "" 为空; vs[1] = 2; vs[2] = "" 为空;
*/

示例三

std::string s = "1,,3";
vector<std::string> vs;
split(s,vs,",")
/*函数执行后
vs的大小为3
其中
vs[0] = 1; vs[1] = "" 为空; vs[2] = 3;
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值