|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作4 f3 [/ ^/ u7 x0 s
2 ~9 @- l" N) i+ A$ u/ u+ Y
! ?6 x9 r* [- w7 Q- U%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
0 T4 q8 ^, d1 g# u. ^% T3 A%[aB'] 匹配a、B、'中一员,贪婪性* j0 ?5 Z# X! i; x+ L
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性( A/ k. u; }8 k
$ R0 J* ]" F' C; L, j z8 f
$ l" G; o9 W+ J: d- t6 q# A0 {1. 常见用法。
* [: q+ |' f0 q% F+ J U3 W* M) y9 w
char buf[512];
0 U- N/ Q. p1 U8 t" F% c/ ^0 Bsscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!- h$ h V. H8 T( \0 k# h! s6 j
printf("%s\n",buf);3 M4 @2 y. {# q0 u. G& i6 d. x
结果为:123456
; w+ I+ F$ B3 D- ~- ]2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
1 v1 o; e- a/ p& N4 C
! p$ h! f% h" q8 U5 K1 K( m3 e, s+ rsscanf("123456","%4s",buf);$ l8 S+ P0 n4 M+ Z& ?
printf("%s\n",buf);
. o0 U C- X) I+ _# t# D2 G结果为:1234* v. \$ d% D9 I
3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。: }( x) }0 x6 C$ D$ W* t) o% t
: f9 Z/ b8 }! [+ J' s6 p( wsscanf("123456abcdedf","%[^a-z]",buf);
$ m" F$ M+ ]7 J$ a1 K, c- [printf("%s\n",buf);
8 l) M1 q" k3 X0 a5 U结果为:1234567 \4 q+ e# S6 G5 d* F6 S! p
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。5 K$ c0 Q, ^! v4 a- J, @) `* k
" b# W5 \( a- p. q, ]7 dsscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
+ E* m6 O) H6 Z& L( F' uprintf("%s\n",buf);
7 X! v6 _6 E0 i' O结果为:123456abcdedf
9 Z7 f4 j u7 X当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);
' B% M9 p# X, w' Y" x! F1
; t1 T( O0 c1 Z/ r1 ?. w% c) zprintf("%s\n",buf);
0 V1 m/ o( L' |2 x3 k( y/ n结果为:1234562 }5 f% O. m8 j6 J2 A
5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。 E; k6 ~1 { `* H$ ~
8 g& K8 f, I& N- a! a1 k3 {sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);
( h% R/ L! S5 Z# N$ ~$ M0 vprintf("%s\n",buf);& W$ E5 L+ U: h# Z
结果为:123456abcdedf$ s d. B1 N; q; z' {
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,
3 y) |) _" g% X& A8 ?& L) O! O先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中
' _) C! T+ s* B& e% h) Y' Y' ~. A4 _4 q" l# ^+ M2 M
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf); ]( V1 O& I/ x8 A
printf("%s\n",buf);+ r1 n; l, w( ]/ i: E b7 N
结果为:12DDWDFF
/ r! |% M8 Z; e9 _% F7、给定一个字符串“hello, world”,仅保留world。
, J" h' M/ V4 o7 c$ A! T+ D$ [(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串), g+ o* u/ L1 Q& a! ]& E1 l
$ T ]: \! U+ o9 Z- M. ~sscanf(“hello,world”,"%*s%s",buf);& G! T A8 t5 k3 ]% ]: l
printf("%s\n",buf);
0 Y0 f- h: W7 d- m结果为:world: C3 Z; X" Y& } a0 ]. m' D3 h
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了
% ^* r( @7 L1 i如果没有空格则结果为NULL。
l# b6 y! R$ `/ u% k Y% z
/ l: M3 k* f q( W; o- \8 L |
|