函数实现
int getParamVal(const char *str,const char *parmname,char *retbuf,int bufsize)
{
char pname[50]={0};
int ilen=0;
sprintf(pname,"%s=",parmname);
char *p=strstr(str,pname);
if(p!=NULL)
{
p+=strlen(pname);
ilen=strlen(p);
char *p2=strchr(p,'&');
if(p2!=NULL)
{
ilen=p2-p;
}
if(ilen>bufsize-1)
{
ilen=bufsize-1;
}
memcpy(retbuf,p,ilen);
retbuf[ilen]=0;
}
return ilen;
}
调用例子
char *p="http://www.google.com.hk/search?hl=zh-CN&q=linux&lr=";
char buf[50]={0};
int it=getParamVal(p,"q",buf,sizeof(buf));
if(it>0)
{
printf("parmval=%s\n",buf);
}else{
printf("no found!\n");
}