|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作
7 h5 K6 t8 q/ H- @3 s; H
- h( y9 T$ ?& c6 o ]5 u0 e! i/ E. O
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)# R2 F9 k: N7 Y$ I) }
%[aB'] 匹配a、B、'中一员,贪婪性1 |/ l- \0 C% }2 h2 ^' \
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性+ `/ O' \; R2 r _( g$ T1 D W2 ^3 q
! Q+ S5 m# F1 r2 X- f8 L+ r
& }/ i ]: @8 a& ^, ]5 T8 P' E1. 常见用法。
/ F6 n2 G8 {; S9 ~0 u$ {
) ] Q: ^; |) lchar buf[512];- d; ], h# C- O! \6 t
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!4 }* h; x4 x) b! q" ^5 U
printf("%s\n",buf);( Z! W% ?5 U! i% q, f$ ]
结果为:123456
2 s8 `$ ?. ?: E! q3 [3 o2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。! \4 Y4 a/ d* d' j, |+ H
, Z6 q4 m6 Y% V8 B# g( Gsscanf("123456","%4s",buf);# |* o: O C+ t) Z, G# d
printf("%s\n",buf);
% q' r: S1 ? \! s$ T结果为:12344 L+ t3 D- o% G0 n0 ^
3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。" S3 P, d! m; a7 H+ V9 W% C
l y4 m/ V- asscanf("123456abcdedf","%[^a-z]",buf);
$ E, J5 d7 I# ?printf("%s\n",buf);4 E# T( W; T" x, n
结果为:123456
) K6 S H- Z" }' z+ Q) W( h i4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。* M- E# O& i; U" W0 d
) Y5 O& d. F% W3 q7 W( k
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
. E4 ^ ]! W* b1 J D4 jprintf("%s\n",buf);
, `+ }) l* F8 w1 Y: B结果为:123456abcdedf
( o% d) A' ^" T9 k8 Z, b' V当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf); E; \% P5 M& Q* O. o' @
15 K9 z* m2 \7 ^( G# y. x u
printf("%s\n",buf);/ Q3 Q# V! t& R
结果为:123456+ v, Y. ?9 @3 O# W8 v E
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
7 ^- O! P3 x5 H+ t( a) t; M; m& o! S H% Y) Z3 p3 z
sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
4 `2 l) o& K2 J6 m' l1 C' Z0 h) Jprintf("%s\n",buf);1 L- s; A! _/ S# B* C. F3 Z0 S
结果为:123456abcdedf7 {; A! S$ u& L$ p: ]
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
' K7 ~) k5 p! Y+ }先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中* W" s$ _+ A! G+ u9 _3 E6 @
0 }$ \# F1 M! L+ f6 ^
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);2 Q6 d7 E( ?- m) }" k- p8 W2 A1 I, N
printf("%s\n",buf);. ] ~, S$ O* C" l) s& y$ s/ H0 Y% @! _7 k
结果为:12DDWDFF
2 q2 N2 k: M/ x0 W# l7、给定一个字符串“hello, world”,仅保留world。. r- h5 c* `1 ]* D; I; ~. M
(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
$ S! V+ s% @4 y/ `3 J L5 h
% o' X8 h |+ Gsscanf(“hello,world”,"%*s%s",buf);) i& V' C4 h9 E; b4 |5 i% A
printf("%s\n",buf);
4 k! w" t) \, r+ e% H7 |结果为:world
& |, B5 m3 Z( |* ^; a7 I%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了: G7 ]9 D4 j! |2 Z1 b0 ]4 s; w
如果没有空格则结果为NULL。( p" @8 \, N, z; ^% B
% c ?2 O; ]+ ]& J9 Z$ J" o6 n |
|