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

请教:过滤字符串问题

楼主ww425(如果人人都学一点JAVA,这个世界将变的更加美好!)2005-04-14 14:19:56 在 VC/MFC / 基础类 提问

大家好!我的问题如下:  
   
  一个字符数组中的内容为:(其中...代表省略号,也就是一些字母,数字等等随机产生的字符串)  
   
   
  buffer[1024]   =   "...   ...   <style>   ...   ...23534r...   ...dfhgjhjty   ...   ...   </style>   ...   ...";  
   
  ...   ...//此处通过处理只过滤掉<style>与</style>之间的内容,其他内容不变  
   
  buffer1[1024]   =   "...   ...   <style>   </style>   ...   ...";     //最终结果  
   
  处理部分如何写?  
  问题点数:20、回复次数:2Top

1 楼ww425(如果人人都学一点JAVA,这个世界将变的更加美好!)回复于 2005-04-22 09:48:10 得分 0

没人会吗?Top

2 楼sjcode(愚者)回复于 2005-04-22 09:52:50 得分 20

以前写的一个类似这个功能的函数,给你参数一下  
   
  /**************************************************************************  
  名称:int   CServiceMap::GetElementsSize(const   char   *value)  
  功能:返回信息表数目  
  参数:  
  value 菜单编码  
  可选值:无  
  返回值:  
  信息列表数目  
  ***************************************************************************/  
  int   CServiceMap::GetElementsSize(const   char   *value)  
  {  
  char   *pos,*rpos;  
  int   value_len; /* 数据长度         */  
  int   number   =   0; /*   <b>的数目 */  
  value_len   =   strlen(value);  
  if(value_len==0)  
  return   1;  
   
  rpos   =   strdup(value);  
   
  pos   =   strstr(rpos,"<b>");  
  if(!pos)  
  return   1;  
  for(int   i=0;i<value_len;i++)  
  {  
  if((pos   =   strstr(rpos,"<b>"))!=NULL)  
  {  
  rpos   +=   pos   -   rpos;  
  rpos   +=   strlen("<b>");  
  number++;  
  }  
  else  
  break;  
  }  
  return   number+1;  
  }  
   
  /**************************************************************************  
  名称:void   CServiceMap::LoadValue(string   *result_str,const   char   *value,int   index)  
  功能:通过企业代码查找  
  参数:  
  result_str 需要加载的缓存  
  value 菜单编码  
  index 菜单索引  
  可选值:无  
  返回值:  
  信息列表数目  
  ***************************************************************************/  
  void   CServiceMap::LoadValue(string   *result_str,const   char   *value,int   index)  
  {  
  char   *pos,*rpos;  
  int   value_len;  
  int   number   =   0;  
  value_len   =   strlen(value);  
  if(value_len==0)  
  return;  
   
  rpos   =   strdup(value);  
  if(rpos==NULL)  
  return;  
   
  pos   =   strstr(rpos,"<b>");  
  if(!pos)  
  return;  
  char   buf[160];  
  int   p;  
  for(int   i=0;i<index;i++)  
  {  
  memset(buf,0,sizeof(buf));  
  if((pos   =   strstr(rpos,"<b>"))==NULL)  
  p   =   strlen(rpos);  
  else  
  p   =   pos-rpos;  
  strncpy(buf,rpos,p);  
  rpos   +=   pos   -   rpos;  
  rpos   +=   strlen("<b>");  
  result_str[i]   =   buf;  
  if(i==0)  
  result_str[i]   +=   "22:下一页";  
  if((i+1)==index)  
  result_str[i]   +=   "11:上一页";  
   
  if(i>0   &&   i<(index-1))  
  {  
  result_str[i]   +=   "11:上一页\n";  
  result_str[i]   +=   "22:下一页\n";  
  }  
   
  }  
  }Top

相关问题

  • 字符串过滤问题
  • 过滤掉字符串“  79% ”?
  • 字符串过滤,请大家帮忙!
  • 过滤字符串的问题。。。。。。急。。。。。。。。
  • 过滤字符串问题,在线等。。。。。
  • 请教字符串过滤问题!!
  • 过滤字符串。(问题比较难)
  • 关于字符串过滤问题.
  • 特别奇怪的问题,关于过滤的字符串
  • 如何过滤掉字符串里的 “ \ ” 这个字符?

关键词

  • 内容
  • 信息
  • rpos
  • cservicemap
  • pos
  • 数目
  • 值
  • 菜单
  • 参数
  • len

得分解答快速导航

  • 帖主:ww425
  • sjcode

相关链接

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

广告也精彩

反馈

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