sscanf memo

来源:互联网 发布:女主播直播软件 编辑:程序博客网 时间:2024/05/22 01:45

#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