|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
支持集合操作# {' g% n/ v) K
9 F% g% c& K& j2 E
, e+ F/ ?( j; Z0 ^! G* p4 ^" C%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)/ o5 q u9 C6 K# k* i" G
%[aB'] 匹配a、B、'中一员,贪婪性
9 Q2 S8 S. Y* |+ R! b0 y%[^a] 匹配非a的任意字符,并且停止读入,贪婪性( v3 K- {7 k( q$ S! L
w7 s- P! X9 u! L# x" u& F: K1 I) r
" N, _( X5 u- K. k' A1. 常见用法。
- E, y9 r; h7 s9 a% b2 u" ?1 J9 w3 G0 S. V6 E2 o: c4 a( h' C& B
char buf[512];
, j" Q+ R4 r/ v! }0 hsscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!) Q+ X" {8 S" P/ A% E
printf("%s\n",buf);
, d$ R/ _9 m* V" Y. t结果为:123456
# j C( f }% P0 W, @2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。; [3 l! ]! S$ W
m4 Y% k, O& m( W. l5 S+ ?/ y
sscanf("123456","%4s",buf);
3 x) j1 G5 K* a1 T3 t8 U$ Gprintf("%s\n",buf);
# U; r* Z" m' @% s& }5 n8 i6 w结果为:1234 y1 }7 z' y: B6 ]0 t
3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
# s @! G) [# U, A2 R! Q Y( u1 ?7 `+ x, Y
sscanf("123456abcdedf","%[^a-z]",buf);
& R! u5 S* [+ `/ _8 Cprintf("%s\n",buf);8 t' E+ x; u/ ^
结果为:123456
2 J" V0 z7 l- A& n, U; |4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。3 E; e" ]5 ^* H8 K! F: }
2 B4 U: J. }# k& O/ Asscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);
( T2 z$ m, B3 p A% m( Iprintf("%s\n",buf);9 ?& M+ K0 a+ j' E1 V
结果为:123456abcdedf
( A$ n) Y' Q$ s: O当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);4 S" V r+ t) b# D/ L) v5 C
1& p I' S" n! Z1 H
printf("%s\n",buf);
; C3 v) B2 T- w; e结果为:123456
$ ^- @# D) M+ m5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。$ O) F7 I. ~ Y# j& n( O
1 J! L c$ |! a' E* h! E
sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);! u) ~* v% p" s8 N4 C) x
printf("%s\n",buf);' c0 `$ j9 l1 M, E m) W
结果为:123456abcdedf
5 B! s. ?+ V; S, D. ?6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,& x* k' L, a4 K: i# b, m$ U3 Z0 [1 V
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中5 z! ?" f0 _& ^) Q! O' E% n
6 m" g9 f& P! k' x. e1 e# Tsscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);$ ^$ I' c* e. y+ K
printf("%s\n",buf);
6 _) a4 S/ p% C$ {3 { \结果为:12DDWDFF
2 \5 K, x" \; b/ Z s7、给定一个字符串“hello, world”,仅保留world。8 \3 G7 c d: M3 D1 v m, p
(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)- [) c3 u1 Z. w% H; |
' o, t+ }0 f4 F& S
sscanf(“hello,world”,"%*s%s",buf);
8 w' G( Z- V# o; K4 P B0 b7 aprintf("%s\n",buf);
6 s" }, z# b4 ?0 W结果为:world
. J. U' g( g% H2 e6 @%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了
, }* {6 L: ~& u6 N/ z' Q0 x9 a如果没有空格则结果为NULL。+ Q: @, a% o t m% E
m( G% \8 |9 \" ]) Q, `! }& l. | |
|