|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作- e( p5 N. M5 a/ U, h& g
) `2 z7 Z% I: g) X, Q
; Q2 }8 e$ C. ~# m) C2 S%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
7 a, t7 o/ b" r" Q0 s- {$ n7 s%[aB'] 匹配a、B、'中一员,贪婪性 b0 w' E, b' g
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性
4 }* \+ z# t; ]$ U3 m
' |" e: h9 @' U4 c# E* Q8 h+ r( u
1. 常见用法。
4 |' A( w: N# K6 u. l: \& A! @# [. l* w( [4 _, a
char buf[512];% R6 k' G" s; f
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
3 _+ @/ }* _7 C2 `' ~/ xprintf("%s\n",buf);
- V n5 P# a& W4 H3 `0 f {6 c0 s/ O9 w结果为:123456
" `& N7 t' Z4 \: a: B3 E. e F2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。- s% s) n& ?1 w/ p/ }/ T' ^
/ X" ~& u" V; u8 hsscanf("123456","%4s",buf);/ U* h8 _8 J O3 O6 |+ A$ K. T
printf("%s\n",buf);
, O3 {* m- k. L& k0 R结果为:1234
1 u1 O9 I* ^) |( Q. v3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
% L1 R3 f5 j# o. g$ t, }8 s
! h# C$ a( t6 P% hsscanf("123456abcdedf","%[^a-z]",buf);
8 U c- u) T' V% Qprintf("%s\n",buf); ~1 w: _& j8 F+ x9 g' p1 i
结果为:1234561 T' Y% \) m2 v- T2 j d: i
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
3 F. F$ m4 {/ _# Z
; K, k7 ~2 Y, B! e8 ssscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);' A( w; U; v( ~- \1 M+ ~
printf("%s\n",buf);
+ f m, I" q( x结果为:123456abcdedf2 I) s8 P- r# K# t
当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);4 L4 S( k1 D( i7 Y4 C! z
1' r5 M- _, K9 }4 x0 R2 b
printf("%s\n",buf);
2 N& J+ V- K8 K {3 O结果为:123456& Z6 V1 T1 j" @2 G; c
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
& n' ^- X( L; J9 [. l
, k' Q0 v9 x2 Z0 G" `sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
9 P. r+ z& a: Q- R, P; sprintf("%s\n",buf);
$ X( x9 j; G. c/ g& u3 q结果为:123456abcdedf
) i& J/ {& K% N1 |- K! Z6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,8 Q8 L- \3 C s4 \# r! N( Y. e
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
; j. @& ^2 A% g5 |% L/ N- z+ R% d1 ~, J& q8 A
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);% J8 |0 l/ G# B. E0 v
printf("%s\n",buf);2 H0 P; @6 _5 h
结果为:12DDWDFF
9 T/ S# n; X+ i/ w1 _7、给定一个字符串“hello, world”,仅保留world。9 Y2 M$ M6 F- }: G- | w' W- `" O$ q
(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)1 g6 J8 ~2 w) ~4 p) W8 H! {
* E T- p1 ^5 C/ l2 Jsscanf(“hello,world”,"%*s%s",buf);# @# u9 y* v4 A" d, a
printf("%s\n",buf);
" Q: y8 q+ H; P结果为:world
$ j- `1 @! |& p$ t/ j/ w9 F) ~) Y7 Q%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了
$ w6 E9 f3 R. w7 G如果没有空格则结果为NULL。7 J6 M8 S+ G* V; T# [
! Q g% G& R8 ~: l+ y( _1 \( X" x
|
|