请教:过滤字符串问题
大家好!我的问题如下:
一个字符数组中的内容为:(其中...代表省略号,也就是一些字母,数字等等随机产生的字符串)
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




