|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作( D+ k7 \( A1 K, p
+ X( |3 K$ [8 y$ f8 R- w
3 ?* \* D7 _3 |. \5 Z- ?%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)3 ~( |* |4 c# ~& }
%[aB'] 匹配a、B、'中一员,贪婪性, e" A5 e% r9 Z G
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性
2 n, G) c/ v' U( `. J0 Y
3 }: F0 u; h+ A/ t
8 G! a5 `6 x6 r2 {* R1. 常见用法。7 g# y; [0 a! _0 `' z6 }3 {
) W9 `6 T% I. Z: z8 Fchar buf[512];% D% \6 U3 Y$ ?# c3 ?
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
0 Z3 N6 T) [' t$ p& }printf("%s\n",buf);2 l* W4 l% A5 b' Y' h* L5 I m
结果为:123456
' P, d( R2 B" E T( ^+ D2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。& g# L, V+ b% o- U( [
, C' w( ^; b0 Q+ I% |/ z
sscanf("123456","%4s",buf);6 Q0 N Z$ M- g% b% h) Q: Q- H
printf("%s\n",buf);& _! D3 g. h+ G/ _9 H0 x; L
结果为:1234
6 \( [- N/ i$ h1 [" J4 F3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
0 f% W/ ~* l% J* y3 z
. a3 r/ x( A4 nsscanf("123456abcdedf","%[^a-z]",buf);
& x# R8 W( c4 C' Qprintf("%s\n",buf);$ k( O( Y* K9 ?6 `: ^: C
结果为:123456
! H- q$ ?! M, F4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。# ~* \* O* M/ N4 M7 r! D( I
! K- M) a+ x3 |; Bsscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
0 t* N+ z) [7 K5 }9 |printf("%s\n",buf);7 `/ l; o9 I2 p+ c7 y |+ P
结果为:123456abcdedf# u, h0 C- A: X# g1 q$ ^
当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);7 ?' ]8 _; `9 d
1
" v9 J; E# c P. Z- |printf("%s\n",buf);6 u# f" F# C7 H" S; z8 B6 {
结果为:123456
3 y! h2 N1 N* q5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
7 D9 E- Q9 F8 r X# y1 c: ~8 O" _& ? L. O
sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);1 Y5 M6 t/ n/ |; n) z3 Y
printf("%s\n",buf);; R/ B. r+ Z" `" \
结果为:123456abcdedf
2 H$ N( H, q3 x- v% x5 m+ m6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
8 r0 u7 j% q( J! r4 l先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
) ?. o! Q7 P. r/ r$ z8 n$ b. ]* H& f) S
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
, q. J; V5 C& I- g% k |printf("%s\n",buf);. W/ a- X0 P/ g: V* z) R0 `
结果为:12DDWDFF
3 @/ [0 f4 n! |. T3 N! v. t7、给定一个字符串“hello, world”,仅保留world。
( S/ F$ N9 c Y(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)6 [& I) ]3 P+ Z) w, g
# V* I9 ~" _% J, C
sscanf(“hello,world”,"%*s%s",buf);, m, w2 M/ f; q$ `% `* O7 R; {
printf("%s\n",buf);0 i1 a+ l2 K, j( Q: K
结果为:world
" w3 v% H* `' @! e& @" j%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了0 `; Q& F1 z# C! \2 o/ b% q
如果没有空格则结果为NULL。
( Y# ~. H q- _) V. U! |( u( P, N2 j/ g) v. o4 m
|
|