|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作3 Q) j9 r& ]9 @0 C4 c3 o
) n3 W8 ?6 {( j8 x
, @: W* D8 f' C- F6 }%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)6 q- ~7 g( {: ^
%[aB'] 匹配a、B、'中一员,贪婪性" H8 p( _- |0 s( S @" _$ H6 \0 R
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性# i6 y7 ~7 x6 `7 R$ r
- g8 d" F1 ~$ v y7 |
: r0 X7 Z | {& \! m
1. 常见用法。
% }2 G- B/ @1 ]9 ~+ k
, e: t: u3 }5 W* ?+ A5 D9 Uchar buf[512];. ~6 a5 ]2 N1 ]" V a
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!- ]: ]# \7 O9 G% \5 g* a x1 ~
printf("%s\n",buf);
z! Z* c+ @' X; i3 i结果为:123456
) ?4 y C" k! O0 i3 N" d2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。7 w: y E5 g% \
+ l- {+ `, a2 l) T' \ Psscanf("123456","%4s",buf);$ T2 G. s3 K) O
printf("%s\n",buf);, H& u$ B/ Z: W7 x: d0 |
结果为:1234
7 O7 H+ {, C+ u' d/ P4 z7 K' Y3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。6 u. Y# l" ^* r4 V, B
6 w' p; o' ^4 C x1 x6 X5 n, g* b
sscanf("123456abcdedf","%[^a-z]",buf);
j1 W7 ]4 {$ _* _printf("%s\n",buf);3 F9 B" a- n0 x1 g3 o& O6 U
结果为:123456
' P! K9 i. @5 H, V# d4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
+ ?9 [4 G/ n! Z; K1 X- [# K2 ?
: d/ R9 Z7 C! t3 Y0 m& q' Q- a! _sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
0 k( y7 J* R( Z, b( b) |2 Tprintf("%s\n",buf);
" l, H5 \, j# H# l R9 f5 d$ l# e结果为:123456abcdedf* ~, h8 r' N, L
当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);: V: E; {, V# v0 `/ i4 M2 k9 @. G
1
$ t' U2 ?$ x1 L! F! W9 Fprintf("%s\n",buf);2 b. J) Z2 M4 S
结果为:123456
5 r% u+ B8 m z5 x5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
9 S+ j. _- D& t+ d1 n1 c; G! i
7 F K! w3 B# }1 K5 K% |sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);! p6 Y! w1 f6 l3 j
printf("%s\n",buf);
" \( H) {+ y2 g. F0 x v8 u结果为:123456abcdedf
9 }! L8 \3 x/ D7 I: N4 c3 y9 x7 T6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
S t$ \+ T- d* H$ n7 Y O先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
. W% [! g0 I7 y6 c9 d! l% g; a, i- V; ], ~
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);+ E1 t' }, V! i" B
printf("%s\n",buf);
8 X2 q+ T, n& U" _( \$ C0 }$ X结果为:12DDWDFF
+ Z) w" h( _. \* K, y4 o W7、给定一个字符串“hello, world”,仅保留world。
5 g) ^/ b" Y) J$ N0 O! }) z1 i9 Z(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
; C- U' @9 S0 X( |9 c- Q& |9 |7 l/ \- @! t( o! y* S+ D4 o
sscanf(“hello,world”,"%*s%s",buf);
, R6 {/ `7 [3 J3 w0 G' uprintf("%s\n",buf);
. R. Y3 n; Y$ I结果为:world+ V. P0 p$ o, ~. L8 Z' F
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了
8 v* c: e# S! S8 A- f如果没有空格则结果为NULL。4 s1 Z4 N+ n3 \. l! B
7 E9 r+ }- B( i1 D* R2 @0 X |
|