打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
分割字符串(CString版本)(转)

//根据多个分隔符来分割字符串

source 源串

seprator分隔符

count分割后的子串数量

返回值:分割后的子串

CString* ExtractStr(LPCTSTR source, LPCTSTR seprator, int *count)

  1. {  
  2.     int     iSubStringCount,nIndex=0;  
  3.     CString strSource=source,strSeperator=seprator,*pstrSubStrings;  
  4.   
  5.     if(strSeperator.GetLength()==0)  
  6.     {  
  7.         *count=0;  
  8.         return NULL;  
  9.     }  
  10.   
  11.     //seprator中的所有分隔符全部替换成第一个,并统计source中seprator的个数  
  12.     iSubStringCount =1;  
  13.   
  14.     for(int i=0;i<strSource.GetLength();i++)  
  15.     {  
  16.         if(strSource[i]==strSeperator[0])  
  17.             iSubStringCount++;  
  18.     }  
  19.   
  20.     for(int i=1;i<strSeperator.GetLength();i++)  
  21.     {  
  22.         iSubStringCount+=strSource.Replace(strSeperator[i],strSeperator[0]);  
  23.     }  
  24.   
  25.     pstrSubStrings=new CString[iSubStringCount];  
  26.   
  27.     int nNewIndex,nCount=0;  
  28.     while(nIndex<strSource.GetLength())  
  29.     {  
  30.         nNewIndex=strSource.Find(strSeperator[0],nIndex);  
  31.         if(nNewIndex>=0)  
  32.             pstrSubStrings[nCount++]=strSource.Mid(nIndex,nNewIndex-nIndex);  
  33.         else  
  34.             pstrSubStrings[nCount++]=strSource.Mid(nIndex);  
  35.   
  36.         nIndex+=pstrSubStrings[nCount-1].GetLength()+1;  
  37.     }  
  38.   
  39.     *count=iSubStringCount;  
  40.     return pstrSubStrings;  
  41. }  

//释放内存

  1. void FreeStrings(CString *lpstr, int count)  
  2. {  
  3.     if(lpstr==NULL || count<=0)  
  4.     {  
  5.         return;  
  6.     }  
  7.   
  8.     delete[] lpstr;  
  9. }  

例子:

  1. CString strSample=TEXT("aa,bb,cc,dd");  
  2. int nCount=0;  
  3. CString pSubStrings=ExtractStr(strSample,TEXT(","),&nCount);  
  1. ....  
  2. FreeStrings(pSubStrings,nCount);//用完子串后释放内存  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
CString常用方法一_无处&&心灵
VC:CString用法整理(转载)
CString 成员函数用法大全 - C++ 代码 - 博客园
使用"查找/替换"对话框在文本中替换字符串
VC++-数据加密
VS2010/MFC编程入门之四十二(MFC常用类:CString类)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服