在网络协议的实际运用中 我们经常会遇到抓取HTTP协议的request中的内容(前后固定规律):
例如搜索引擎发出的请求中包含的关键字,经分析后会发现其规律的所在位置。
以下是从字符串中抠出你想要的关键字内容代码:
有错误的地方请大家指正(gcc中编译运行通过) 谢谢
1 #include <stdlib.h> 2 #include <stdio.h> 3 #include <unistd.h> 4 #include <string.h> 5 #define Length 200 6 int FindKeyword(char *start,char *end,char *sour,char *buf); 7 char buf[Length]; 8 int GetValue(char *buf , RegInfo info); 9 typedef struct RegInfo 10 { 11 char Name[20]; 12 int Age; 13 int Gender; 14 char LiveAddress[256]; 15 char ComAddress[256]; 16 int Telphone[11]; 17 }RegInfo; 18 19 int main(void) 20 { 21 char *sour="data_id=0458942466&usernameid=21BA3171E464A80C4BEBFBDF452B1F5C29B3037B5AB89C65&pwdid=FEC70EEE5072625FFEC70EEE5072625FFEC70EEE5072625FDDB1E64AA34C986D&zjbhid=FEC70EEE5072625FFEC70EEE5072625FFEC70EEE5072625FFEC70EEE5072625FFEC70EEE5072625F&yhm=&dlmm=&qrdlmm=&zjlx=1&zjbh=&zsxm=王年成&zy=05&csrq=1951-08-01&xb=1&mz=30&jtzz=重庆市城口县大城市&jtzz_first=&jtzz_second=&jtzz_third=&jtzz_other=&txdz=重庆市梁平县重新按市场&txdz_first=&txdz_second=&txdz_third=&txdz_other=&lxdh=15688521315&gzdw=天天电子&yzbm=666666&dzyj=22222222@qq.com&tsmmwt=我就读的第一所学校名称?&tsmmda=土豆&checkCode=8496"; 22 char *start="jtzz"; 23 char *end="&jtzz_first"; 24 FindKeyword(start,end,sour,buf); 25 return 0; 26 } 27 28 int FindKeyword(char *start,char *end,char *sour,char *buf) 29 { 30 char *p=strstr(sour,start); 31 char *q=strstr(sour,end); 32 char *p1=p+strlen(start); 33 int i=q-p1; 34 memset(buf,0,sizeof(buf)); 35 36 37 memcpy(buf,p1,i); 38 39 printf("bufend=%s",buf); 40 return 0; 41 42 }
原文:http://www.cnblogs.com/charlieadios/p/3565606.html