sscanf的用法
如下的信息 提取 编号 编码格式 主题 from to等信息
sscanf要怎么写
tm-app2 postfix/cleanup[21714]: 9C78740192CAC: warning: header Subject: =?utf-8?B?5Zyo77yf?= from unknown[172.24.202.117]; from=<wangjingci@tomonline-inc.com> to=<491009699@qq.com> proto=ESMTP helo=<smtp.tom.com>"
sscanf
[解决办法]
sscanf函数不好处理!
推荐strsep函数,查找对应的关键字!
[解决办法]
建议使用strtok或者strsep分开后在使用sscanf
[解决办法]
#include <stdio.h>
char s[]="tm-app2 postfix/cleanup[21714]: 9C78740192CAC: warning: header Subject: =?utf-8?B?5Zyo77yf?= from unknown[172.24.202.117]; from=<wangjingci@tomonline-inc.com> to=<491009699@qq.com> proto=ESMTP helo=<smtp.tom.com>";
int no;
char code[10];
char sub[80];
char from[128];
char to[128];
int main() {
if (5==sscanf(s,"%*[^[][%d%*[^?]?%9[^?]%79[^ ]%*[^<]<%127[^>]%*[^<]<%127[^>]",&no,code,sub,from,to)) {
printf("no=%d\ncode=%s\nsub=%s\nfrom=%s\nto=%s\n",no,code,sub,from,to);
return 0;
} else {
printf("Format Error:[%s]\n",s);
return 1;
}
}
//no=21714
//code=utf-8
//sub=?B?5Zyo77yf?=
//from=wangjingci@tomonline-inc.com
//to=491009699@qq.com
//