|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
支持集合操作
6 B5 W) _, ?4 \, e: i
* i$ C" H$ Y3 f, l7 n' z* a7 D3 G. \" M/ K, d% u
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配). M( K; V# ]! q
%[aB'] 匹配a、B、'中一员,贪婪性( q# [5 ?, T- h2 Y& _1 d; E5 |( ?
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性8 A9 `- k6 d3 A# H' Y& ~ g& g
" g7 l6 U1 t* ~$ W0 } a+ c
" |( E3 e- C& ^1. 常见用法。* e8 q& }- W8 ], p/ Y8 f
0 ]0 ^# y: a! G9 H7 @" R! T# H2 jchar buf[512];
- j. N6 v. U" ~3 Esscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
2 n [' ]$ p+ A$ u" Rprintf("%s\n",buf);
: f" {4 k; E% `9 X W3 v6 |5 q; w结果为:123456
, I8 F7 O/ F6 h8 t$ ?" y2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
7 q' N$ M: n7 E n4 K7 V) V5 X. r4 K$ a1 m% J
sscanf("123456","%4s",buf);* U+ b3 s. c; x9 a
printf("%s\n",buf);7 L0 |- I2 u2 E% I2 {: i
结果为:1234
3 j+ ], j& C6 K3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
; \" ~+ n1 s4 Z% U
" x1 g7 ~2 }, D8 d; \sscanf("123456abcdedf","%[^a-z]",buf);% ?, y3 e0 n- r# q: M( M
printf("%s\n",buf);$ { Y3 G( [3 C9 g0 r: F0 x% J2 Q
结果为:123456
; F" h; p8 u& g4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
6 t3 L' P8 O2 c [6 |. I
' l9 ]# T/ F! [: Fsscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);0 o2 H* c2 @6 p* Q: B
printf("%s\n",buf);
, G: C1 m/ Y7 I Z1 D- q结果为:123456abcdedf
; A' h6 e: f; q, I当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);
3 \! G7 l" ?0 R/ t2 x1 ]+ ?: I5 b1
+ z/ M% ]$ }7 Jprintf("%s\n",buf);2 M8 V6 c: Q' M6 _# W# U
结果为:123456
8 x" d& v* S. Q, P5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。, D$ _; Y) g, A. C; `8 j+ v2 A
. @2 {. ]# ^1 b6 lsscanf("123456abcdedfBCDEF","%[^A-Z]",buf);- Y# j. N" [ o$ z- \+ g
printf("%s\n",buf);* f3 N) W I, t M2 p
结果为:123456abcdedf h4 e) p& X5 a3 \ s
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,/ R: e1 c' b; {0 M: J
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
3 D, F/ Q4 W3 Z) P8 b; w0 n% o: C3 S( J2 V
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);& j1 ~6 ~( u( [& e% I
printf("%s\n",buf);
+ B# m( f4 e% A6 l结果为:12DDWDFF
# n6 A3 ]& V( E# i9 z7、给定一个字符串“hello, world”,仅保留world。
( b u: F1 V) Y% o$ C1 ^(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
# {0 k _' M+ f/ x" p7 P0 W' |, S; ?3 w: y$ s6 X& P
sscanf(“hello,world”,"%*s%s",buf);
* ~: N/ b2 U# Fprintf("%s\n",buf);- F1 g! Z- ^" \" Z. B
结果为:world+ Q/ E2 a0 o7 A- R2 ]2 j2 i& X
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了
2 P8 L( i& \1 n* }/ x: z# i# g如果没有空格则结果为NULL。9 R6 f. r( M3 [! B4 X
- |( C! O' X& ?9 ]# u3 Y; [7 N |
|