scanf函數(shù)中的%[]用法:
%[]表示要讀入一個(gè)字符集合, 如果[后面第一個(gè)字符是”^”,則表示反意思。
[]內(nèi)的字符串可以是1或更多字符組成。空字符集(%[])是違反規(guī)定的,可導(dǎo)致不可預(yù)知的結(jié)果,同樣%[^]也是違反規(guī)定的。
例如: %[a-z]讀取在a-z之間的字符串,如果不在此之前則停止,如
char s[]="hello, my friend” ; // 注意: ,逗號(hào)在不 a-z之間
sscanf( s, “%[a-z]”, string ) ; // string=hello
%[^a-z] 讀取不在a-z之間的字符串,如果碰到a-z之間的字符則停止,如
char s[]="HELLOkitty” ; // 注意: ,逗號(hào)在不 a-z之間
sscanf( s, “%[^a-z]”, string ) ; // string=HELLO
%*[^=] 前面帶 * 號(hào)表示不保存變量,跳過符合條件的字符串。
char s[]="notepad=1.0.0.1001" ;
char szfilename [32] = "" ;
int i = sscanf( s, "%*[^=]", szfilename ) ; // szfilename=NULL,因?yàn)闆]保存
int i = sscanf( s, "%*[^=]=%s", szfilename ) ; // szfilename=1.0.0.1001