MFC字符串分割

MFC 字符串分割

打算分割文件路径来着,文件路径分隔符是"\",但是路径前后都没有这个符号,造成处理情况比较复杂.于是想起了链表的方式,手动增加头尾分隔符,这样就只有一种前后都有分隔符的情况了,易于处理.

再拓展一下,分割普通字符串应该也不错,改成C,C++应该也不难.

// 字符串分割
void DivString(CStringArray &arr, CString strSrc, CString strDiv = _T("\\"))
{
	arr.RemoveAll();										// 清除原先的内容
	CString str = strDiv + strSrc + strDiv;					// 头尾增加切割字符串
	int iIdxFind = 0, iIdxLast = 0;							// 切割索引
	while (true) {
		iIdxFind = str.Find(strDiv, iIdxLast + 1);			// 查找结束位置
		if (iIdxFind <= 0) { break; }						// 找不到切割字符串
		iIdxLast += strDiv.GetLength();						// 新字符串的开始位置
		if (iIdxFind - iIdxLast <= 0) { continue; }			// 过滤空字符串
		arr.Add(str.Mid(iIdxLast, iIdxFind - iIdxLast));	// 添加新字符串
		iIdxLast = iIdxFind;								// 更新最新位置
	}
}

// 测试代码
void Test()
{
	// 分割路径
	CStringArray arr;
	DivString(arr, _T("C:\\Program Files (x86)\\Internet Explorer\\iexplore.exe"));
	DivString(arr, _T(""));
	DivString(arr, _T("\\"));
	DivString(arr, _T("\\abc"));
	DivString(arr, _T("abc\\"));
}

结果还算满意.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值