C語言中sscanf函式的簡明教程

2021-10-18 01:15:07 字數 2644 閱讀 5522

int

sscanf

(const

char

*str,

const

char

* format,...);

sscanf()定義於標頭檔案stdio.hsscanf()會將引數str的字串根據引數format字串來轉換並格式化資料。格式轉換形式請參考scanf()。轉換後的結果存於對應的引數內。

成功則返回引數數目,失敗則返回-1(也即eof)。

format中可以包含乙個或多個

注:表示a,b,c中選一,[d],表示可以有d也可以沒有d。

lengthspecifier組合所指定的儲存型別表:

注:黃色行表示實現標準為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...