#include <stdio.h>
int sscanf(conse char *str, const char *format, ...);
format {%[*] [width] [{h| I | I64 | L}] type | ' ' | '\t' | '\n' }
a. *用于过滤,过滤掉部分str中的数据。
b. {a|b|c} 可选
c. width 宽度
d. {h | l | I64 | L}:参数的size,通常h 表示单字节size,I 表示2 字节size,L 表示4 字节size(double 例外),l64 表示8 字节size
e. type :这就很多了,就是%s,%d 之类
e.g.
%[a-z] 满足a-z的取,直到不满足为止,(贪婪)
%[abc] 满足abc之一就取
%*[0-9] 过滤掉非0-9的字符。*非常强大,可以过滤掉空格。[^0-9],^, -可组合使用
1.
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
结果为:1234
2.
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
结果为:1234
3.
sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
printf("%s\n", buf);
结果为:12DDWDFF