#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
int instrr(char *str,char *substr)
{
char *p,*r;
int flag=0,n=0;
while(*str){
n++;
p=str;
r=substr;
while(*r)
if(*p==*r){p++;r++;}
else break;
if(*r=='\0'){flag=1;break;}
str++;
}
if(flag==0)
n=0;
return n;
}
char *Element(char *xml,char *eleBegin,char *eleEnd)
{
int bdgin,end,len;//元素首地址,尾地址,长度
char str[200];
char ele[200];
char *s;
//char *ele;
int k,i;
len=strlen(eleBegin);
bdgin=instrr(xml,eleBegin);
end=instrr(xml,eleEnd);
strcpy(str,xml);
i=0;
for (k=bdgin+len-1;k<end-1;k++)
{
ele[i]=str[k];
i++;
}
s=ele;
//ele=TEMP;
printf("\n%s\n",s);//这一行没有用,但是没他,返回的就是乱码
return s;
}
main(void)
{
char *a;
char *b;
char *c;
char *d;
a="lm";
b="cd";
c=Element("abcdefghijklmn",b,a);
d=c;
printf ("%s %s\n",d,c);
}
Element(char *xml,char *eleBegin,char *eleEnd)函数的目的是从xml字符串中把eleBegin和eleEnd之间的全部字符返回。
慕容3067478
侃侃无极