|  | 
 
| 
支持集合操作
x
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!您需要 登录 才可以下载或查看,没有账号?注册 
  & j, @# J9 L! O+ s% T# }8 q( p: R' ~9 k( t/ y, ~. Y( K
 
 % x. x" O! U5 \( \  R%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)' a- s4 i0 t* V: D
 %[aB'] 匹配a、B、'中一员,贪婪性
 + n: k3 s7 E& f$ w% U7 P% e. \%[^a] 匹配非a的任意字符,并且停止读入,贪婪性
 # v" ?$ r# W8 H
 . q$ D6 |% W( N# i6 w' f0 A% j/ O' V/ ~" d: J" H5 `" S+ ~! |  w. f* S
 1. 常见用法。
 ) @: m0 {6 H3 m3 L! l* ^2 M8 j
 4 f6 k/ O: G. z  l# o, A4 Pchar buf[512];
 # k) b: m; h4 v9 Dsscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
 9 i. x  w$ F8 |* I1 ]printf("%s\n",buf);9 X" I' f6 D+ j/ ^* a0 Q; m- L
 结果为:123456: d9 G$ u9 v% r
 2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
 o, x  W0 o9 ]: Y, k. Q6 X+ w9 i3 d* e  c5 N5 V4 y4 W
 sscanf("123456","%4s",buf);: l  J1 e2 E# G2 d0 I
 printf("%s\n",buf);5 v* h' n3 n: y$ \2 m$ K/ r
 结果为:1234
 8 o" @$ \2 `5 O3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
 + d+ t+ t6 @  Y  s
 ( ]. R5 U/ j4 B" P  f7 Usscanf("123456abcdedf","%[^a-z]",buf);. m2 Q, V% s: y# z8 _) G
 printf("%s\n",buf);
 " {7 y. w5 H& D3 q; q$ ?( {结果为:1234567 I0 E5 y9 C) F& _2 X% Z
 4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
 7 f% e) ]- c1 I0 U' X1 D: c" f# Q  j
 ( e6 ~0 M/ C3 a: v# a0 ?7 jsscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);5 E) ^5 F) Y+ h7 |/ i, T
 printf("%s\n",buf);
 0 L- u4 q: r/ H7 w6 O1 ]结果为:123456abcdedf' ~: k2 u" n* x  v
 当输入:  sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);. h3 R. {4 d2 q* P
 1+ G. Y+ D! @5 {2 ?
 printf("%s\n",buf);
 2 o9 c% V- e: P8 r$ @7 d2 `结果为:123456
 " e) e6 m, e6 J! k' K4 i5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。- i& g% V9 n4 @% h  [, Y, z2 \1 ~7 ?
 
 , [2 `( A! L' J! V& Isscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
 8 t/ [; x8 e& G0 \2 H* r# Fprintf("%s\n",buf);
 9 a  V( |; W/ W3 Z. y8 q; B# ?) `结果为:123456abcdedf
 , B) R2 E, F& G( Z! S6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
 ; \" I  |. d$ O( X2 ]先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中* x0 A) ~* x9 ]8 ?. T' T/ u# Z
 ( b- C* O( q! A5 N, M6 Y
 sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);0 |! U: ]5 g; f# y
 printf("%s\n",buf);
 1 G7 w) V& m" B- W" K$ m结果为:12DDWDFF
 $ |1 I! N( C: M7、给定一个字符串“hello, world”,仅保留world。% [# K- H6 F# h% y- R
 (注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
 / I2 Y; D) k$ z8 `
 8 E9 I9 N# s& k+ q3 Osscanf(“hello,world”,"%*s%s",buf);
 3 z7 N* h' I; f# h4 X0 C8 wprintf("%s\n",buf);* r( W1 E/ Z' p$ K4 P% j5 E
 结果为:world3 z9 j, R- m$ e
 %*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了) d$ R- ]! @6 p: ?" Y! A, q
 如果没有空格则结果为NULL。
 2 u0 [+ l7 B1 ]3 b2 M2 _: h9 Q1 T, J. Q- O9 I* y
 
 | 
 |