拆分以某个字符分割的字符串(转)

来源:互联网 发布:录像分析视频软件 编辑:程序博客网 时间:2024/05/29 17:16
 
/**************************************************************************/
/* 拆分以某个字符分割的字符串                                             */
/* liuxwin                                                                */
/* 2006.12.29                                                             */
/* 返回值: 分割后子字符串的数量                                           */
/*  strarray 分割后各个子字符串存放的数组, str 原字符串, flag 分割标记字符*/
/**************************************************************************/
int CAnalyseStrDlg::AnalyseStr(CStringArray &strarray , CString str, CString flag)
{
 int nCount ;
 int iStart ;
 int iEnd ;
 CString sTemp ;
 nCount = 0 ;
 iEnd = 0 ;
 iStart = 0 ;
 while ( iEnd >= 0 )
 {
  iEnd = str.Find( flag, iStart ) ;
  if ( iEnd >= 0 )
  {
   sTemp = str.Mid( iStart, (iEnd-iStart ) ) ;
   strarray.Add( sTemp ) ;
   iStart = iEnd + 1 ;
  }
  else if ( iEnd < 0 )
  {
   sTemp = str.Mid( iStart, (str.GetLength() - iStart) ) ;
   strarray.Add( sTemp ) ;
  }
  
 }
 nCount = strarray.GetSize() ;
 return nCount ;
}
 
函数使用方法:
CStringArray strArray ;
AnalyseStr( strArray,
           _T("fshjk;jfsl;sjfs;sdfjk")/*要拆分的字符串*/,
           _T(";" )/*分割的标记*/ );
//strArray里的内容就是拆分后的每个字符串
for( int i=0; i<strArray.GetSize(); i++)
    AfxMessageBox( strArray.GetAt(i) ;