c++高手来啊,关于:正则表达式(匹配字符串)的

来源:百度知道 编辑:UC知道 时间:2024/06/22 08:02:45
请帮我写一个函数(不要带MAIN函数)
函数原型如下:
char* http_cut_fun(char*,char*,char*)
其中:第一个参数是整个字符串(已经存放在内存中了)
第二参数是起始字符串,
第三个参数是结束字符串
要求:从整个字符串中查找起始字符,如果没有就返回空,如果找到,就从起始字符串的下一个字符开始截取串,直到遇到结束字符串。就返回被截取的字符串,如果没有找到结束字符串,就返回空.如果起始字符串到终止字符串中没有字符也返回空。

比如:三个参数:"1234avc12412356" "234" "124" 返回:"avc"
"1234avc12412356" "126" "1" 返回 :NULL
"1234avc12412356" "avc" "v" 返回:NULL
"1234avc12412356" "avc" "124" 返回:NULL
"1234avc12412356" "124" "6" 返回:"1235"
"1234avc12412356" "235" "123" 返回:NULL

char* httpcutfun(char* pSrcStr, char* pStartStr, char* pEndStr)
{
if(NULL == pSrcStr || NULL == pStartStr || NULL == pEndStr)return NULL;
static string result;
string buff(pSrcStr);
string::size_type start_str_pos, end_str_pos, start_cut_pos;
if((start_str_pos = buff.find(pStartStr)) == string::npos)return NULL;
else{
start_cut_pos = start_str_pos + strlen(pStartStr);
if((end_str_pos = buff.find(pEndStr, start_cut_pos)) == string::npos)return NULL;
}
if(start_cut_pos == end_str_pos)return NULL;
else result.assign(buff.begin() + start_cut_pos, buff.begin() + end_str_pos);

return (char*)result.c_str();
}

char* http_cut_fun(char*cst1,char*cst2 ,char*cst3 )
{

CString sting ="";
if (cst1.strgetlength() <0 ||cst2.strlgetength() <0 ||cst3.strgetlength() <0 )
return NULL;
if( (!st1.find (st1,st2) ||(!st1.find (st1,st3) )
return NULL;
i