|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作
* F: ?% {2 S: I& e& G, E) M O7 y* j5 m2 X) ?5 w6 `: H" ~
$ ^! |, j" ?/ ~; S%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)! Y2 I# F% n. Z" t; I
%[aB'] 匹配a、B、'中一员,贪婪性
: x0 Q4 I$ K" f+ E6 I/ s6 M%[^a] 匹配非a的任意字符,并且停止读入,贪婪性3 H0 ^7 n: ]0 [$ I$ ~+ |' _
o# ^0 f# ?& t& N, R6 Y2 x2 P C
2 C, H* t8 F, H6 |
1. 常见用法。, h4 f. S& l% S' }0 q; F- D
7 {' G% [3 z4 ^* f8 zchar buf[512];8 Y4 x5 g+ G! i2 a/ h
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
$ _: g& B( j" a, ]+ r1 |printf("%s\n",buf);
6 u7 C) h8 G: \结果为:123456; d, w, f6 N# X# o/ W! E3 T$ r! x* R
2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
2 W: u, U: R( L7 p5 Y; G5 D( k* r4 H
# P% H$ t" C# L5 B. T% hsscanf("123456","%4s",buf);& V% B# C0 w7 ^6 @! Q2 v& N
printf("%s\n",buf);% b: E X! I3 s# |: C
结果为:1234" ]5 e+ L$ L! B
3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
# I- e0 n$ ]3 E5 O7 |, U$ Y: |
. h# s7 m, X% I9 O, Q+ ysscanf("123456abcdedf","%[^a-z]",buf);5 C6 w: J4 c* n `5 A3 ~
printf("%s\n",buf);
9 r6 Y& z% u. O$ [4 {结果为:123456
$ y3 ~0 R+ l& D3 L8 t5 h4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。- `% o- c; |/ d0 t8 a: l& p
) y: P v" M$ w& Q
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
* U% u: a8 u5 P; M9 x4 W# {printf("%s\n",buf);
9 T3 Z% l4 n1 N( d% ~; b结果为:123456abcdedf$ `2 H7 E1 M6 z. O
当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);
% s9 {; M; `4 h% `/ }12 C l& d1 u" x6 h' M
printf("%s\n",buf);7 f M4 B6 ~) B& z1 u4 R
结果为:123456
+ }5 ~4 t8 z- s5 U4 m/ b5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。4 S5 d2 }1 v% N# K2 x
- n* q" C% w* y: a, f; l3 a; esscanf("123456abcdedfBCDEF","%[^A-Z]",buf);! Q- Z4 D* A- T. O. W) R
printf("%s\n",buf);
- E- ~* G: V9 P8 O" u; ?结果为:123456abcdedf
; p& r/ X, i! g6 Q% i6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,/ G7 ~: K7 X3 v4 k2 W7 y
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中9 w5 Y. u' a+ @4 M& U0 e+ w) n
" h) S k2 ?0 Y. t& | ^/ U) dsscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
" F5 r/ J( j9 D6 t oprintf("%s\n",buf);
: l' |) H4 t: f# o; f结果为:12DDWDFF9 O: Z) k: f6 F0 ^
7、给定一个字符串“hello, world”,仅保留world。
' H4 f8 ^4 r- F6 H% \(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
2 t( q( C# e8 U) [& p) c
& Z- a& Q( v3 Xsscanf(“hello,world”,"%*s%s",buf);
7 I/ I- D4 C* L' {2 Cprintf("%s\n",buf);
- h& g2 @3 Z; o0 @结果为:world
}3 {# ~6 D& u3 h%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了6 Y, o& K1 s8 Q% s0 u
如果没有空格则结果为NULL。: U7 h" R; z, Y5 p: y
2 ^! x6 ~7 F/ k' K8 V2 G |
|