|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作( l! c1 p m# y5 Z
* Z: i1 M# B2 _& k; y5 o* h% ^- |3 a( n" u ]
%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
4 T1 H$ g" O; y v%[aB'] 匹配a、B、'中一员,贪婪性% ^! p' O" {- y: w! g* g/ r
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性' U% D' Z0 R$ W7 q# x
5 V/ T/ l9 {% G; W/ |, K+ q, l
8 B4 w8 m5 u7 s; i
1. 常见用法。" k9 J$ E/ d" j8 U' p
- p* j7 e6 J) rchar buf[512];
+ L0 s0 p( X0 g+ S4 O7 H [6 j; asscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!/ M- p- [) A+ U* D7 A6 n
printf("%s\n",buf);
; g- l; @5 y3 x& W3 @, v结果为:123456
1 g. r5 e4 O/ [1 ]7 |* G. H2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
n$ V$ G. Z: k* ~- b1 B- l5 A; {( ]+ R. R
sscanf("123456","%4s",buf);+ ?: N+ ^: p1 ^& f
printf("%s\n",buf);
9 L0 k7 G$ V8 Q结果为:1234
+ J" M5 k1 ?$ B3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。! W( t5 G' p5 q% e' s% R, v. \
" W# `; t$ J( ^3 rsscanf("123456abcdedf","%[^a-z]",buf);
3 e5 c0 y! s4 l- b: P# l. [7 ~printf("%s\n",buf);, ]/ e9 v0 d7 \% _1 W
结果为:123456
0 E" y& B! P8 m. R8 u4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。
& b7 o, U# [9 T# V0 G8 o+ z4 P5 q0 J1 u+ r' y5 T
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
8 O: c; Y/ n& Wprintf("%s\n",buf);
% ~# o9 I1 c! H/ M6 i结果为:123456abcdedf
( E, F" F- H$ H7 `; z3 Z当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);9 x( p5 Z0 }- R( E. \8 x
1+ y: F1 X. s: e- x* s! M0 ^ |
printf("%s\n",buf);* X8 j( W0 y) i7 |2 h5 ~, ~ i
结果为:123456" N# ]0 }, o1 w! @+ w1 W/ Y$ G
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。& i& y* M' r- C/ e' z+ u: Q5 O6 h
9 N( V$ b6 l/ G* q& r
sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
f0 B8 {3 g/ r# s2 J: Iprintf("%s\n",buf);
& T, X/ ^) P0 t结果为:123456abcdedf
% L: L: m+ n m6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,) a. q8 U( r& @# g! I
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中5 P ^! s. E# D6 r( g# [1 \
9 I8 v6 G% [, G+ o8 W) vsscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
5 o7 |0 u, [7 s5 [printf("%s\n",buf);3 U: y' M: p6 c( g8 J- r
结果为:12DDWDFF% ?& L3 R5 D& B
7、给定一个字符串“hello, world”,仅保留world。. j) }8 Q! d# g& Z+ E4 U) ^
(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)7 {$ z l; |6 w: Y2 j0 |1 v) S
7 i6 N$ [% u& f( G* D0 W e0 e
sscanf(“hello,world”,"%*s%s",buf);4 ^; {: M1 O' D5 w
printf("%s\n",buf);( K$ ~# E7 h0 F8 q# |4 S4 o
结果为:world3 ]% _) F4 v( H4 q, f7 i4 R d
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了* F+ A! K. v- X3 e
如果没有空格则结果为NULL。
. ~/ @" J J% g) K5 F, g4 b
6 z# b# a( N5 a* E6 ?" x& _ |
|