C++ 以多字符为分隔符分割字符串

本文介绍了如何在C++中改进传统的字符串分割方法,采用多字符作为分隔符进行字符串切割。相较于之前的博客内容,此方法更为高效和实用。读者可以参考作者早些时候的文章进行对比学习。
摘要由CSDN通过智能技术生成

发现,之前写的博客中,有一种分割方式是在是有点落后.因此改进了一下,这里主要是第一个函数,百度中可以查到.

#include <iostream>
#include <vector>
#include <string>
using namespace std;
char *strsep(char **stringp, const char *delim)
{
	//判断stringp是否为空,提高程序的容错性
	char *s;
	const char *spanp;
	int c, sc;
	char *tok;
	if ((s = *stringp)== NULL)
		return (NULL);
	for (tok = s;;) {
		c = *s++;
		spanp = delim;
		do {
			if ((sc =*spanp++) == c) {
				if (c == 0)
					s = NULL;
				else
					s[-1] = 0;
				*stringp = s;
				return (tok);
			}
		} while (sc != 0);
	}
}

void pushToVec(std::vector<std::string>&obj,const char *param,std::string token)
{
	char *p = (char*)param;
	char *key_point;
	while(p)
	{
		while ( key_point = strsep(&p,token.c_str()))//关键字为c或d,它们连续出现了
		{
			//函数遇到token时,key_point指向token返回
			if (*key_point == 0)
				continue;
			else
				break
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值