//自定义分隔函数
int Split(CString source, CString ch,CStringArray &strarr)
{
/*---------------------------------------------------------

  * 函数介绍: 从原字符串里按照指定的分隔字符串进行分割,将分隔的结果存放到字符串数组里
 
 * 输入参数:
 source -- 原字符串
 ch -- 指定的分隔字符串
 strarr -- 外部引用的一个字符串数组
 
   * 输出参数:
  
  * 返回值 :总共分隔了多少段字符串.
  
 -----------------------------------------------------------*/
 CString TmpStr;
 strarr.RemoveAll();
 if(source.IsEmpty() || ch.IsEmpty())
  return 0;
 int len=ch.GetLength();
 int findi=0;
 int findn=0;
 int sum=0;
 
 
 findn=source.Find(ch,findi);
 if (findn!=-1)
 {
  TmpStr=source.Mid(0,findn);
  //TmpStr.Trim();
  strarr.Add(TmpStr);
  findi=findn+len;
  sum++;
  
 }
 else
 {
  //source.Trim();
  strarr.Add(source);
  sum++;
  return sum;
  
 }
 
 
 while (findn!=-1)//有发现
 {
  
  findn=source.Find(ch,findi);
  if (findn!=-1)
  {
   TmpStr=source.Mid(findi,findn-findi);
   //TmpStr.Trim();//去除头尾空格
   strarr.Add(TmpStr);
   
   findi=findn+len;
   sum++;
  }
  else
  {
   TmpStr=source.Mid(findi,source.GetLength()-findi);
   //TmpStr.Trim();
   strarr.Add(TmpStr);
   
   sum++;
   
  }
 }
 
 
 return sum;
}

posted on 2012-06-14 10:17  足球王子  阅读(3462)  评论(0)    收藏  举报