分割字符串

//substring
std::string substr(char* str, unsigned int start, unsigned int end)
{
	unsigned n = end - start;
	char stbuf[256];
	strncpy(stbuf, str + start, n);
	stbuf[n] = 0;
	return (std::string)stbuf;
}

/*
函数名称:SplitWords(char* strSrc, std::vector<std::string> & arrWords);
函数作用:分割字符串
*/
int SplitWords(char* strSrc, std::vector<std::string> & arrStr, char chStr)
{
	unsigned int index = 0, len = 0, subIndex = 0, strlength = 0;
	char *tmpSrc = strSrc;
	while (*tmpSrc != '\0')
	{
		strlength++;
		tmpSrc++;
	}
	tmpSrc = strSrc;
	strlength++;
	while (strlength--)
	{
		index++;
		subIndex++;
		if (*tmpSrc == chStr)
		{
			if (subIndex == 1)
			{
				index = 0;
				tmpSrc++;
				continue;
			}
			if (index == subIndex)
			{
				std::string sr/* = (char*)malloc(index)*/;
				sr = substr(strSrc, 0, index - 1);
				arrStr.push_back(sr);
				index = 0;
				//free(sr);
			}
			else
			{
				if (subIndex - index == subIndex - 1)
				{
					index = 0;
					tmpSrc++;
					continue;
				}

				std::string sr/* = (char*)malloc(subIndex - index)*/;
				sr = substr(strSrc, subIndex - index, subIndex - 1);
				arrStr.push_back(sr);
				index = 0;
				//free(sr);
			}
		}
		else if (index != 0 && subIndex != 0 && *tmpSrc == '\0')
		{
			string sr/* = (char*)malloc(subIndex - index)*/;
			sr = substr(strSrc, subIndex - index, subIndex - 1);
			if (sr == "")
				return arrStr.size();
			arrStr.push_back(sr);
			index = 0;
			//free(sr);
			return arrStr.size();
		}
		tmpSrc++;
	}
	return arrStr.size();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

telllong

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值