|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
支持集合操作5 p% J# U+ X0 M o
6 }* Z- e# G: S% {6 K
7 c+ ~0 S& J! Y0 h5 I, J%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
5 J5 m' ]- O; d$ w+ ~%[aB'] 匹配a、B、'中一员,贪婪性* r/ T/ A: Q5 K7 m& t {
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性1 r' p" q6 j, \7 h/ f: Y( j: m. b
9 {5 n/ \ H, b6 U' X8 R8 d# M
8 ?) A+ v, ?* f( s: S2 M1. 常见用法。
& N( l! s R5 n# W; e& |' D
( P& X. {! s# R% j6 dchar buf[512];
; s' F$ R/ M$ n5 J1 fsscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!8 H: h8 T% i# ]5 {0 V
printf("%s\n",buf);6 ^0 z4 \; s( j9 g. [7 {$ T' \; c
结果为:123456
% W4 @3 q. m5 i4 {' T. v8 b2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。5 k5 q h! A$ Z. A: L
6 F h' f2 W, Lsscanf("123456","%4s",buf);
. n5 z) o$ K: a( d/ b2 i+ Wprintf("%s\n",buf);
% C ?! m3 Q- A; q8 P S" K结果为:1234
F0 r% d8 x1 P3 r! w0 x3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
( q! |+ L% F8 N2 K& p* S
! ~; d" ?% l' Msscanf("123456abcdedf","%[^a-z]",buf);6 k( `0 @$ d5 p: C% n
printf("%s\n",buf);
) D# ~: m+ P. e+ ]7 b9 s; @4 g$ F结果为:123456$ U* t2 F6 s8 u( W3 P0 J
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。& r* w* e/ e( Q3 S9 c* U
* p& l% |. |- I3 csscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);5 _* B* }4 E7 ^0 l
printf("%s\n",buf);
( S- {$ {: D2 _$ q3 i结果为:123456abcdedf
; n9 m5 Q! N( L4 y+ e2 O8 @) C当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);6 s: W! }/ S3 {( e/ s1 _4 x$ Z3 f$ J
1
- J# t3 [2 S# `3 ]' z) lprintf("%s\n",buf);: n! a7 r6 Y; z9 @ O$ i; @0 q( j
结果为:123456
2 i; R* S" {) f" i; s$ f5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。6 v$ B4 ?7 i8 q6 N$ S n1 l
- v8 A& {- P9 o( E9 n7 e! vsscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
2 v* z1 ]0 y X* v# C4 sprintf("%s\n",buf);
g: r+ F- a. a+ Q3 p2 H k* N结果为:123456abcdedf! z5 S3 d& H. F" e9 g
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,; U" V3 O7 f) z2 |, B
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
7 [+ T: Q( E/ u, Y; Q
6 m& M5 x1 R- s( ?sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
6 b+ Z! T1 S0 E2 V9 C$ J5 z3 Pprintf("%s\n",buf);6 X# V2 M& x2 j' ~, w
结果为:12DDWDFF
& e9 @# @0 e$ v$ G$ ], G) W7、给定一个字符串“hello, world”,仅保留world。
& b0 y, K$ V: q. P& K" K( F(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)
& l+ B( @/ B' }% ?2 o% \
) |* [3 o4 d7 h0 v$ `* m2 Z; G8 `sscanf(“hello,world”,"%*s%s",buf);
( l' H+ u4 y$ X4 _" C! L+ F4 dprintf("%s\n",buf);
( q$ r6 m3 ]" w3 ~7 G% {结果为:world& D' u7 c8 ]- z, `4 o% C1 V
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了 E$ i2 {6 m o. G( N* j
如果没有空格则结果为NULL。0 n, }# M# v( L' h# N: P
5 a) n5 C0 Y/ A+ n$ v; |8 x
|
|