原來sscanf還可以和正規表示式結合起來

2021-04-28 22:45:34 字數 1349 閱讀 1131

今晚上看live555解析sdp的**,才知道原來sscanf還有這個功能。強大

%

的用法:%

表示要讀入乙個字元集合, 如果[ 後面第乙個字元是」^」,則表示反意思。

內的字串可以是1或更多字元組成。空字符集(%

)是違反規定的,可

導致不可預知的結果。%[^

]也是違反規定的。

%[a-z] 讀取在 a-z 之間的字串,如果不在此之前則停止,如

char s=

"hello, my friend」 ; // 注意: ,逗號在不 a-z之間

sscanf( s, 「%[a-z]」, string ) ; // string=hello

%[^a-z] 讀取不在 a-z 之間的字串,如果碰到a-z之間的字元則停止,如

char s="hellokitty」 ;

// 注意: ,逗號在不 a-z之間

sscanf

( s, 「%

[^a-z]」,

string);

// string=hello%*

[^=] 前面帶 * 號表示不儲存變數。跳過符合條件的字串。

char s=

"notepad=1.0.0.1001"

;char szfilename [32]=""

;int i =

sscanf

( s,

"%*[^=]"

, szfilename )

;

// szfilename=null,因為沒儲存

int i =

sscanf

( s,

"%*[^=]=%s"

, szfilename )

;

// szfilename=1.0.0.1001

%40c 讀取40個字元%[

^=] 讀取字串直到碰到』=』號,』^』後面可以帶更多字元,如:

char s=

"notepad=1.0.0.1001"

;char szfilename [32]=""

;int i =

sscanf

( s,

"%[^=]"

, szfilename )

;

// szfilename=notepad

如果引數格式是:%[^

=:] ,那麼也可以從 notepad:1.0.0.1001讀取notepad

原來web前端薪資還可以這麼高!

其實在國外的前端開發人員和後端開發人員比例約為1 1的,但是到了國內比例卻成了1 3以下。web前端開發職位的人才缺口達到將近50萬左右。然後根據中國人力資源部網上統計資料,上海在2018年web前端開發工程師這一崗位的月平均收入為1.5萬元,工作經驗達到3年的web前端工程師甚至達到3萬元。一 市...

原來還可以這麼交換變數(交換兩個數字)

在日常的程式設計中,大家一定都會遇到要交換兩個變數,那你到底能想出幾種方法呢?int tmp a a b b tmp include intmain a a b b a b a a b include intmain 但是這種方法有乙個問題,當 a a b a和b特別大的時候,a會整型溢位,這樣會有...

原來ASP可以讀寫登錄檔

乙個例子 dim read putername set read putername createobject wscript.shell dim putername,regpath regpath hklm system currentcontrolset control putername pu...