|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作$ ^ K0 u: }% ^1 y0 Q+ S
1 `, \ O; ]/ D4 m6 N8 o( `- T- r1 f7 _% B
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
- t$ W# o+ t/ J/ o%[aB'] 匹配a、B、'中一员,贪婪性
# V4 k. G, q: g, A1 O: u; x%[^a] 匹配非a的任意字符,并且停止读入,贪婪性: R& ^+ A0 Q" X* Y
9 G! ]+ F' o8 L
9 @; c$ o3 A2 d/ i/ |& ?1. 常见用法。; o/ K. S" v( [2 a" O2 Y7 b
0 C, N& N3 P. \4 J: `char buf[512];( ^! r, s* u) r6 d4 Y
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!7 B' A0 Q- o- I
printf("%s\n",buf);) n' n# I2 ?/ E+ Y
结果为:123456
5 [' a7 F8 R. @& Y: l& `2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。4 e) W, e% X5 y. L+ Q
n1 N6 c7 u1 Z& {4 s' O5 D/ Bsscanf("123456","%4s",buf);
$ l! ~" T3 @$ @# v+ eprintf("%s\n",buf);
+ O1 X' a% Z4 ~结果为:1234
2 U3 l' C# ]1 G6 d$ Q3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。* m; i% f6 d g
1 G! z% e0 S) I2 I, v' osscanf("123456abcdedf","%[^a-z]",buf);
: w' G5 ~4 |0 ~2 d9 u8 S' pprintf("%s\n",buf);
G6 _ S- c' t7 N$ V结果为:123456
( R2 R! Q4 O# O' X8 q* |4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
% \% i, f7 d" f; o$ q
0 P2 X' P/ w3 G" D! dsscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
9 A+ z, \# @1 z% Vprintf("%s\n",buf);+ m7 j- W' l T" s5 }; \- I
结果为:123456abcdedf
6 A% E3 q/ K# L/ Y2 c' r; W- H5 G当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);( ^# \$ C6 v' e0 m$ z/ U
1 G9 _. s" a8 \) d9 ~
printf("%s\n",buf);
+ R$ |. n! B1 W$ n( o, v结果为:123456
9 L) \, p( x: f' {% D9 U5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
( M* m) ?; e' n# C* m3 n/ @$ v$ i3 I% A) M
sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);( u5 H3 O/ t; G1 N B2 I
printf("%s\n",buf);% a4 Y1 h$ I3 I2 P/ z
结果为:123456abcdedf
0 A7 y8 K! K, [2 N3 f2 J6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
& L) k0 c7 M6 u3 b先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中7 Z9 J( y% q6 P: Z
/ m" K4 c- E0 ` \: {! K# Y
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
; B; x6 r0 a; Nprintf("%s\n",buf);
4 t8 {0 Z# }6 ~. D结果为:12DDWDFF5 a# i) \. r* ]( h' N
7、给定一个字符串“hello, world”,仅保留world。
+ M+ n9 Y$ [+ p% P4 c2 S(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
& g6 P* w# V8 n {7 Y( z+ l
, k/ t E6 } V5 C* ^- s5 gsscanf(“hello,world”,"%*s%s",buf);
; H$ [! Q7 J( P. aprintf("%s\n",buf);
& j4 k+ o1 C1 [$ S& o* c6 `; y结果为:world
) K' U1 l3 p# E/ Q6 @5 g6 M4 T/ B%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了
$ {- d/ ]. O7 b! M如果没有空格则结果为NULL。8 l# L: P7 }& n# m2 R
1 ~. t3 }: z" U
|
|