Chinaunix首页 | 论坛 | 博客
  • 博客访问: 746192
  • 博文数量: 128
  • 博客积分: 7079
  • 博客等级: 少将
  • 技术积分: 1326
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-16 08:53
文章分类

全部博文(128)

文章存档

2011年(3)

2010年(12)

2009年(9)

2008年(23)

2007年(61)

2006年(20)

我的朋友

分类: C/C++

2006-12-29 13:17:21

今天写的一个拆分以某个字符分割的字符串 ,例如:“kdjf;ks抗毒;素解放sj;afkd散开对;加罚款 ”
此函数可以将以";"分割的分割字符串读出来,虽然很简单,但是很实用,在对关于文件的读写和操作数据库的时候, 可以将要操作的内容格式化成这样的字符串,然后读出来的时候就用这个函数可以很方便的处理好存储的内容。
代码如下:
 
/**************************************************************************/
/* 拆分以某个字符分割的字符串                                             */
/* 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
    AfxMessageBox( strArray.GetAt(i) ;
 
 
 
 
阅读(2331) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~