sscanf and scanf函數%[]用法
scanf函數中的%[]用法:%[]表示要讀入一個字符集合, 如果[后面第一個字符是”^”,則表示反意思。
[]內的字符串可以是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
posted on 2011-01-15 19:54 哲學與程序 閱讀(577) 評論(1) 編輯 收藏 引用 所屬分類: C & C++