|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
支持集合操作# _1 a' E1 K$ \0 i5 E: }
1 t6 B. L& Y# ?' z4 J
" J1 {6 R z$ |7 R1 @- A; q%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
1 p- h* v1 Q& \# M%[aB'] 匹配a、B、'中一员,贪婪性
% q/ c; s+ q. \" T$ O- s%[^a] 匹配非a的任意字符,并且停止读入,贪婪性; [( o. _2 V, I; n w# a4 J) H
# b0 j) a$ ]2 P5 r
( r7 y! v; Q& X" O8 O3 d' P1. 常见用法。
" _( U \+ e" I# X$ L) X4 B3 i& `' j( D
char buf[512];
4 c9 h: t m% T; h1 h" J& Csscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
/ s% f! A: z6 W+ \2 q' q8 x$ [printf("%s\n",buf);( Z w5 f- Z' D
结果为:123456) @5 w" i& F8 W; t! `& x3 w
2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
, `+ S+ v. N/ x) C8 v1 w' s. g. a b0 i% y9 i
sscanf("123456","%4s",buf);4 D8 h1 H) B. R% O l2 v
printf("%s\n",buf);
/ F8 j, ?3 _9 [8 x3 i: Z结果为:1234
$ e( V$ O, v: x# u3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
& x# ^7 d" q# f8 M I* @& @5 O* _" }
sscanf("123456abcdedf","%[^a-z]",buf);
6 m# u1 R/ m2 c9 c: B' Nprintf("%s\n",buf);5 i- A, i* e% m4 \
结果为:123456
6 n) W* H0 ^: X5 i t% b* \/ U8 t: M4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
9 R! g! @ j* y* @$ {3 Y) A/ m# `8 Q" x2 h* I7 v
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);1 Y$ n2 _0 O0 g6 N9 W
printf("%s\n",buf);1 W$ T+ {) s% y9 y+ A$ A( F
结果为:123456abcdedf; v9 [: p! @. l( t
当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);2 r. E6 e/ I1 f5 Y
1' @, L N4 A4 y2 x2 D# N p
printf("%s\n",buf);- M" K7 K4 ]- _- o
结果为:123456
9 }% f! H Z/ u& c+ Z6 s c$ Q6 L5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
# A; E4 ~9 `+ e+ R i
( N4 S3 d" O& k& S: _sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);$ _. h. g- v& b# f& f. |
printf("%s\n",buf);
9 Q% b- D. n% e' Y. j& f结果为:123456abcdedf
1 {: N$ C( A& u/ M9 @6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,5 J; @; s7 ]" L+ ]! I0 m+ f
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
1 e! K6 }/ S8 G2 k! K4 j
" h# b* x: G9 |/ e2 {: `$ esscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);2 c0 d$ }+ i- Q3 {' E
printf("%s\n",buf);6 A& @( t0 L2 R4 r: y
结果为:12DDWDFF5 }+ D% i. U R" K# ^, O# X
7、给定一个字符串“hello, world”,仅保留world。- V" q% O( C) G: R" r1 U1 H# A4 f" o
(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
8 ~8 s& ^$ e4 s& q( _2 `
! I5 r/ N; A4 m) x4 csscanf(“hello,world”,"%*s%s",buf);! q/ m/ F- ^ a' E
printf("%s\n",buf);
3 f4 F8 f1 x4 u) {4 R6 l; S" T: A3 ?结果为:world
; j) o+ g, i$ W* Y% ~0 ^ `%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了5 C) t- T I6 B1 _3 i" `7 B
如果没有空格则结果为NULL。$ z2 {# @( n- L) r' R; |' q
: y: u0 x7 d* O% M |
|