int
sscanf
(const
char
*str,
const
char
* format,...);
sscanf()
定義於標頭檔案stdio.h
。sscanf()
會將引數str
的字串根據引數format
字串來轉換並格式化資料。格式轉換形式請參考scanf()
。轉換後的結果存於對應的引數內。
成功則返回引數數目,失敗則返回-1
(也即eof
)。
format中可以包含乙個或多個
注:表示a,b,c中選一,[d],表示可以有d也可以沒有d。
length
和specifier
組合所指定的儲存型別表:
注:黃色行表示實現標準為c99支援集合操作:
注:集合操作的儲存格式只能為char*或wchar_t*,即不能用%[0-9]接收並儲存為int*
char result[
100]
;sscanf
("helloworld"
,"%s"
, result)
;printf
("%s"
, result)
;// helloworld
char result[
100]
;sscanf
("helloworld"
,"%5s"
, result)
;// 限定長度為5的字串
printf
("%s"
, result)
;// hello
long
long result;
sscanf
("8888888888888"
,"%lld"
,&result)
;// 儲存型別為long long int
printf
("%lld"
, result)
;// 8888888888888
char result[
100]
;sscanf
("helloworld"
,"%*5s %s"
, result)
;// %*5s表示接收但忽略5個字元,%s表示接收剩下的字元,format中的空格會被忽略
printf
("%s"
, result)
;// world
char result[
100]
;sscanf
("abcdefg8888abc"
,"%[abc]"
, result)
;// 每個字元只能是a、b、c中的乙個,一旦不滿足則接收(忽略後面的所有字元,即使可能會再次滿足條件)
printf
("%s"
, result)
;// abc
char result[
100]
;sscanf
("ab12cdefg"
,"%5[a-z0-9]"
, result)
;// 接收長度為5並且由a到z、0到9字元組成的字串
printf
("%s"
, result)
;// ab12c
char result[
100]
;sscanf
("abcdefg"
,"%[^d-f]"
, result)
;// 接收由非d、e、f字元組成的字串
printf
("%s"
, result)
;// abc
char name[
100]
;int age;
sscanf
("name=zhangsan;age=24"
,"%*[^=] = %[^;] ; age=%d"
, name,
&age)
;// 分別接收name和age並按指定格式儲存
printf
("%s\n"
, name)
;// zhangsan
printf
("%d\n"
, age)
;// 24
C語言中的sscanf 函式使用詳解
sscanf 從乙個字串中讀進與指定格式相符的資料.函式原型 int sscanf string str,string fmt,mixed var1,mixed var2 int scanf const char format argument 說明 sscanf與scanf類似,都是用於輸入的,只...
C語言中sscanf 用法
int sscanf const char const char int sscanf const char buffer,const char format,argument buffer儲存的資料 format格式控制字串 argument選擇性設定字串 sscanf會從buffer裡讀進資料,...
C語言中 sscanf 的用法
sscanf 從乙個字串中讀入,指定格式的資料,並存入對應的引數列表中.返回值 失敗 1 成功 格式化引數的數目.str 待讀入的字串,特定的字串 fmt 格式化方式 var1 var2 引數列表 intsscanf string str,string fmt,mixed var1,mixed va...