|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
×
支持集合操作
/ H( W5 {7 r' B0 F8 _, m- }2 w
% h1 F! y; z7 E& S" Q
/ l- f) W9 r8 L4 _: }9 P! F%[a-z] 表示匹配a到z中任意字符,贪婪性(尽可能多的匹配)
: d! S4 b0 c' I2 j. f3 H%[aB'] 匹配a、B、'中一员,贪婪性+ a. x$ X0 t' k& j* X
%[^a] 匹配非a的任意字符,并且停止读入,贪婪性" Q ~/ U* }$ |9 i! ^- |2 k
0 b8 x! J8 z# a- F$ f/ l/ g( m, r( [3 ]' e' m9 A
1. 常见用法。
5 k# _# P" j6 n
% K& w* T. K$ G% U( Y, ~char buf[512];3 i+ U2 d6 Z% V" e0 v
sscanf("123456","%s",buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中!! P& P. i$ M, y0 L3 j5 ^7 u
printf("%s\n",buf);. V i- h7 n* D9 x- j; N* h/ {
结果为:123456( |( r. q: z9 G" }+ I' m
2. 取指定长度的字符串。如在下例中,取最大长度为4字节的字符串。
; |1 \' _+ Q7 j& B, v! d0 q5 y) ~1 Q) _5 m& s( I! k
sscanf("123456","%4s",buf); |& }1 [; Q6 E. o7 V; j
printf("%s\n",buf);
, n2 R ^4 }' ^4 J6 f结果为:1234# ]( R; h( o# @& b( D# } k
3. 取到指定字符为止的字符串。如在下例中,取遇到任意小写字母为止的字符串。
" ~% B2 t% D3 c; F; F7 J' Z
% W& J) l5 e4 ]2 B6 a" Vsscanf("123456abcdedf","%[^a-z]",buf);
" o: q8 s. q8 S* bprintf("%s\n",buf);
1 M, o. Z- S3 z( o2 `结果为:1234568 w2 d1 W% i& s8 E0 y
4. 取仅包含指定字符集的字符串。如在下例中,取仅包含1到9和小写字母的字符串。+ t" C4 k7 A' R, M" R0 u7 G5 r) _
$ ?, W9 g0 V) q; R9 ^
sscanf("123456abcdedfBCDEF","%[1-9a-z]",buf);, b Y! d- b( l* A2 Q% M' \3 W
printf("%s\n",buf);
. l4 ?( y) f& R* Q( K' q5 i结果为:123456abcdedf% |- X0 K p$ p7 A8 e) E: a
当输入: sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);0 U& h& m: v' |7 c ^9 P
18 R, H: k- m$ P" @- {
printf("%s\n",buf);% r+ }5 _7 b) L: S) ?
结果为:123456
: @( D# _! q2 R* g0 @* x* O5. 取到指定字符集为止的字符串。如在下例中,取遇到大写字母为止的字符串。# Q5 b2 f* U. }" `7 Y, F
% l C, |5 Y8 A& O |4 S0 \# n
sscanf("123456abcdedfBCDEF","%[^A-Z]",buf);* ? b+ `3 X$ @& ]- y$ P
printf("%s\n",buf);: b1 v1 t: d: _( j: I& S
结果为:123456abcdedf- P( k" Q6 Q' @; U3 d
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串," s; n; f! i: g/ i+ T6 Z
先将 "iios/"过滤掉,再将非'@'的一串内容送到buf中! n0 ^4 a. [$ _0 l: o
0 O0 y0 b- B, d9 X8 o
sscanf("iios/12DDWDFF@122","%*[^/]/%[^@]",buf);
) I- \8 _: U, C, Mprintf("%s\n",buf);* W' L' |' w) S
结果为:12DDWDFF
! u1 z; F! \- g: J" _8 H6 c/ y$ x7、给定一个字符串“hello, world”,仅保留world。
* z, ]7 U3 `2 Z0 Y* O(注意:“,”之后有一空格,%s遇空格停止,加*则是忽略第一个读到的字符串)# R) R1 O" l" c& `+ L$ s2 |6 H
& F! d* b* n0 r- Q. S. nsscanf(“hello,world”,"%*s%s",buf);2 F5 C! v9 f9 E: ?- f
printf("%s\n",buf);
2 T8 K) y7 E- x/ N8 e! f结果为:world, w9 t& b, c+ O' W. g" b
%*s表示第一个匹配到的%s被过滤掉,即“hello,”被过滤了" I9 d" s6 S3 R. r d, n' m
如果没有空格则结果为NULL。$ U8 m7 q/ ~: F" @: D. `' e; d
* k8 @! o# }9 ?6 h& b* j8 f
|
|