|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作
' D* m! M8 N5 p% i0 J9 _4 f, Z( Y, C4 _, R2 S
7 N; J) A( R' L3 Z, k3 l%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
9 ]3 d6 \" X) L7 o. J1 W%[aB'] 匹配a、B、'中一员,贪婪性% Y" T* }( Q' B; \ S/ f7 Y8 T* s. }
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性' r+ |, H6 O2 I# t& ?# o
. H1 _1 s. N5 D6 {( {3 w o3 X
. a- E+ r# B( X a1. 常见用法。% z' Y( h5 ~: i, x" y
9 _8 E9 T; I! h/ Xchar buf[512];7 c5 ?9 R0 e+ X8 g; b
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!
+ |4 X$ d/ ] Jprintf("%s\n",buf);
5 A7 |4 ~2 S$ ?( b( E% E结果为:123456
% a; j: t( r7 w) G2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
! \& u7 w" V! A3 N4 t
. A% v' g- \# R' s' }% H# m/ ksscanf("123456","%4s",buf);. K! r. M* `' P% i
printf("%s\n",buf);
& i- M- m9 c' t结果为:1234! f/ ?1 ^- P0 g/ Y0 u E
3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
; T' b6 h# ^. }$ F7 v7 n5 w, `1 Q4 T( {
/ W N# t% \0 tsscanf("123456abcdedf","%[^a-z]",buf);
6 K$ M$ X' y' S8 C, w- \1 ^9 `, Mprintf("%s\n",buf); k5 m& p r( @1 l4 h
结果为:123456! ?7 J; U# T( E+ x8 [7 p# x9 g9 o t
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
" T$ y9 O) w0 Q2 N4 K# [* [ r4 @/ e/ l
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);2 H2 h) x4 h" T8 B
printf("%s\n",buf);) m% l! c- z! {4 r) m. h
结果为:123456abcdedf
! |0 ]. G9 a% G. a当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);1 l0 D$ H x& `+ ?( F9 v6 J
1
; [# s4 m I! D: b% ` \printf("%s\n",buf);
j. X% ]$ _) K9 n结果为:1234562 _2 ^9 @6 ?) |2 q& _/ e7 Q0 H
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。
; }4 [& @" A& R5 A5 l
8 ]$ d" y0 Y' }3 D1 A% [* jsscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
9 g' m8 v& d/ S/ _4 M9 Xprintf("%s\n",buf);
* N1 G. O7 e. o: W- X结果为:123456abcdedf
" P. f8 x- y& w _% ~9 Q9 P6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
) T* d' `- C" r* F ?$ e! ~# h先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中2 ?% Q& o, t0 C) S: M& u2 B
, ~3 C9 ]3 V& Z+ [sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);7 {6 c8 m0 Y4 ?. q1 I. {) r
printf("%s\n",buf);
8 ~! ^0 A5 w1 u+ ]' C6 R* B) K- z! N& O结果为:12DDWDFF4 b1 v9 ?5 e) @3 C5 Z
7、给定一个字符串“hello, world”,仅保留world。
9 P0 A9 o4 ]3 s" [9 a(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串). {% r( r' @8 u! Z' L: H h0 R
* R0 c/ I% C; ?4 I. n9 Q8 s
sscanf(“hello,world”,"%*s%s",buf);
" ?) {+ {9 n% d8 G' Q5 Zprintf("%s\n",buf);/ Q4 M6 i7 o; _; l
结果为:world, C3 q' g) @1 P0 |" `
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了2 f/ h: ?. C$ R
如果没有空格则结果为NULL。
3 }/ [1 X$ N5 r7 H( |. w) Q C3 w& y* ~
|
|