CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

求拆分字符串的函数 例如:abc$中国$12345$,。‘ 用$号拆分,急,帮忙!

楼主vipfenghuang(张伟)2005-11-14 16:16:53 在 VC/MFC / 基础类 提问

如题  
   
   
  注意:应考虑中英文、数字、符号组合的情况 问题点数:100、回复次数:12Top

1 楼bobob(静思)回复于 2005-11-14 16:24:12 得分 15

CString   str   =   "abc$中国$12345$,。‘   ";  
  char   a1[8],a2[8],a3[8],a4[8];  
  sscanf(str,"%[^$]$%[^$]$%[^$]$%[^&]",a1,a2,a3,a4);  
  AfxMessageBox(str);  
  AfxMessageBox(a1);  
  AfxMessageBox(a2);  
  AfxMessageBox(a3);  
  AfxMessageBox(a4);Top

2 楼slackwater(山林风雨)回复于 2005-11-14 16:31:09 得分 5

楼上倒是简单Top

3 楼vipfenghuang(张伟)回复于 2005-11-14 16:44:59 得分 0

感谢!还有其他方法吗?Top

4 楼38062708(土豆精)回复于 2005-11-14 16:48:15 得分 15

void   GetStrsFromStr(CString   str,CString   maskstr,CStringArray   &ary)  
  {  
  ary.RemoveAll();  
   
  int   indextemp,indexfront;  
  CString   strtemp;  
   
  indextemp     =   0;  
  indexfront   =   0;  
   
  while(1)  
  {  
  indextemp   =   str.Find(maskstr,indexfront);  
  if   (indextemp   ==   -1)  
  indextemp   =   str.GetLength();  
   
  strtemp   =   str.Mid(indexfront,indextemp-indexfront);  
  ary.Add(strtemp);  
  indexfront   =   indextemp   +   1;  
  if   (indexfront   >=   str.GetLength())  
  break;  
  }  
  }  
  CStringArray   ary;  
  GetStrsFromStr(str,"$",ary);Top

5 楼bobob(静思)回复于 2005-11-14 16:53:54 得分 5

如果$的个数不定的话也可以用sscanf循环处理Top

6 楼Mackz(在相互)回复于 2005-11-14 16:54:37 得分 15

CStringT::Tokenize  
   
  CStringT   Tokenize(  
        PCXSTR   pszTokens,  
        int&   iStart  
  )   const;  
   
   
  Parameters  
  pszTokens    
  A   string   containing   token   separators.    
  iStart    
  The   zero-based   index   to   begin   the   search.    
  Return   Value  
  A   CThisString   object   containing   the   current   token   value.  
  Remarks  
  Call   this   function   to   search   for   tokens   in   the   given   string.   The   pszTokens   is   a   string   containing   the   token   separators.   Parsing   of   the   target   string   begins   at   the   iStart   position.  
  Example  
  The   following   example   demonstrates   the   use   of   CStringT::Tokenize.  
  //typedef   CStringT<   TCHAR,   StrTraitATL<   TCHAR   >   >   CAtlString;  
  CAtlString   str(   "%First   Second#Third"   );  
  CAtlString   resToken;  
  int   curPos=   0;  
   
  resToken=   str.Tokenize("%   #",curPos);  
  while   (resToken   !=   "")  
  {  
        printf("Resulting   token:   %s\n",   resToken);  
        resToken=   str.Tokenize("%   #",curPos);  
  };  
  Output  
  Resulting   Token:   First  
  Resulting   Token:   Second  
  Resulting   Token:   Third  
  Top

7 楼vipfenghuang(张伟)回复于 2005-11-14 17:18:14 得分 0

多谢各位!!!Top

8 楼T97102003(池塘里的水手)回复于 2005-11-14 17:21:30 得分 15

CString   str   =   "abc$中国$12345$,。‘   ";  
  CStringArray   szArray;  
  CString   szTemp;  
   
  int   i=0;  
  while(AfxExtractSubString(   szTemp,   str,   i++,   '$'))  
  {  
  szArray.Add(szTemp);  
  }  
  Top

9 楼vipfenghuang(张伟)回复于 2005-11-14 17:22:26 得分 0

顺便问一句就结贴,   38062708(一个人始终不快乐)   的自己写的函数  
   
  与sscanf()函数效率方面哪个高些???Top

10 楼xiao_fang(frank)回复于 2005-11-14 17:33:40 得分 10

推荐M$提供的内部函数:AfxExtractSubString :)  
   
  $个数不定如何循环呀?先Find一下看有没有,再来scanf   ?Top

11 楼bobob(静思)回复于 2005-11-14 17:47:43 得分 10

先用sscanf提取第一个$前的段,然后再提取第二个  
  使用如下语法:sscanf(str,"%[^$]$%s",a1,a2);Top

12 楼lemon_wei(研究BT,做好P2P)回复于 2005-11-14 18:28:53 得分 10

http://community.csdn.net/Expert/topic/4383/4383809.xml?temp=.6852381Top

相关问题

  • 字符串拆分处理函数
  • 紧急请教字符串拆分函数Split的用法!
  • 请教一个拆分字符串函数!!!!!
  • 字符串函数?
  • 字符串函数
  • 字符串拆分
  • 字符串拆分
  • 求大家帮我写个函数(关于字符串拆分的)
  • 怎么把字符串"c:\abc"用函数转换成c:\\abc
  • ATL & ANSI字符串函数

关键词

  • 函数
  • 中国
  • indextemp
  • indexfront
  • restoken
  • token
  • catlstring
  • sscanf
  • cstringt
  • ary

得分解答快速导航

  • 帖主:vipfenghuang
  • bobob
  • slackwater
  • 38062708
  • bobob
  • Mackz
  • T97102003
  • xiao_fang
  • bobob
  • lemon_wei

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo