找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 6049|回复: 2

[函数] 自己写的Split函数+分隔字符串strtok函数的应用(相应于VB中的Split)

  [复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2011-6-23 21:12:01 | 显示全部楼层 |阅读模式

  1.         CString str="马大哈|马小哈|阿杰1|阿杰2";
  2.         char *string = str.GetBuffer(0);  
  3.         char seps[] = "|";//分隔符
  4.         char* save;
  5.         save = strtok( string, seps );  
  6.         while( save != NULL )
  7.         {   
  8.                 printf( " %s\n", save );  
  9.                 save=strtok( NULL, seps );
  10.         }
  11.         str.ReleaseBuffer();
复制代码
结果:
马大哈
马小哈
阿杰1
阿杰2

VC6下调试通过

strtok.rar

3.28 KB, 下载次数: 5970

源码下载

【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2011-6-23 21:22:26 | 显示全部楼层

  1. /*        自己写的
  2.         文本分隔函数阿杰编写于:2011.06.24 */
  3. CStringArray* Split(CString s)
  4. {
  5.         /*文本分隔函数*/
  6.         static CStringArray sArr;
  7.         sArr.RemoveAll();//这句一定要有,否则会出问题
  8.         s = _T(s) ;
  9.         while(1)
  10.         {
  11.                 INT iFind = s.Find( _T("|"));
  12.                 if ( iFind < 0 )
  13.                 {//拷贝最后一个字符
  14.                         if ( s!= _T("") )               
  15.                                 sArr.Add(s) ;
  16.                         break ;                
  17.                 }
  18.                 CString sItem = s.Left(iFind);
  19.                 sArr.Add(sItem);
  20.                 s = s.Right(s.GetLength() - iFind - 1 );
  21.         }
  22.         return &sArr;/*返回字符数组的指针*/
  23. }
复制代码
例子:
  1.                 CStringArray* sArr;
  2.                 sArr=Split("马大哈|马小哈|阿杰1|阿杰2") ;

  3.                 int i;
  4.                 for(i=0;i<sArr->GetSize();i++)
  5.                         cout<<(LPCTSTR)sArr->GetAt(i)<<endl;
复制代码
结果同上
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

 楼主| 发表于 2011-6-27 21:25:23 | 显示全部楼层
兄弟你这个也不错,不用MFC我哪个需要用MFC的数组类
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表