sscanf用法示例

2021-08-24 17:57:10 字數 2059 閱讀 4276

**:

返回值成功則返回引數數目,失敗則返回-1,錯誤原因存於errno中。

經多次測試[**請求],在linux系統中成功返回的是成功轉換的值的個數,例如:sscanf("1 2 3","%d %d %d",buf1, buf2, buf3); 成功呼叫返回值為3,即buf1,buf2,buf3均成功轉換。sscanf("1 2","%d %d %d",buf1, buf2, buf3); 成功呼叫返回值為2,即只有buf1,buf2成功轉換。(注意:此處buf均為位址)

支援集合操作

%[a-z] 表示匹配a到z中任意字元,貪婪性(盡可能多的匹配)

%[ab'] 匹配a、b、'中一員,貪婪性

%[^a] 匹配非a的任意字元,並且停止讀入,貪婪性

常見用法。

char buf[512];

sscanf("123456","%s",buf);//此處buf是陣列名,它的意思是將123456以%s的形式存入buf中!

printf("%s\n",buf); // 結果為:123456

取指定長度的字串。如在下例中,取最大長度為4位元組的字串。

sscanf("123456","%4s",buf);

printf("%s\n",buf); // 結果為:1234

取到指定字元為止的字串。如在下例中,取遇到任意小寫字母為止的字串。

sscanf("123456abcdedf","%[^a-z]",buf);

printf("%s\n",buf); // 結果為:123456

取僅包含指定字符集的字串。如在下例中,取僅包含1到9和小寫字母的字串。

示例一sscanf("123456abcdedfbcdef","%[1-9a-z]",buf);

printf("%s\n",buf); // 結果為:123456abcdedf

示例二sscanf("123456abcdedfbcdef","%[1-9a-z]",buf);

printf("%s\n",buf); // 結果為:123456bcdef(錯!!)。結果應該為:123456【因為遇到不是1-9或者a-z的字元時,即遇到小寫字母時,就已經結束

取到指定字符集為止的字串。如在下例中,取遇到大寫字母為止的字串。

sscanf("123456abcdedfbcdef","%[^a-z]",buf);

printf("%s\n",buf); //  結果為:123456abcdedf

給定乙個郵箱,取出公司名:[email protected],先將 "mrspring@"過濾掉,再將非'.'的一串內容送到buf中。

sscanf("[email protected]","%*[^@]@%[^.]", buf);

printf("%s\n",buf); // 結果為:google。

給定乙個字串「hello, world」,僅保留world。(注意:「,」之後有一空格,%s遇空格停止,加*則是忽略第乙個讀到的字串)

sscanf(「hello, world」,"%*s%s",buf);

printf("%s\n",buf); // 結果為:world。%*s表示第乙個匹配到的%s被過濾掉,即「hello,」被過濾了,如果沒有空格則結果為null。

ssanf預設以空白符(空格,tab等)作為分隔符。

示例一: 空白符作為分隔符

sscanf("1 2    3", "%d%d%d", &a, &b, &c) // a=1, b=2, c=4

示例二: 非空白符(如逗號)作為分隔符

sscanf("1,2,3", "%d,%d,%d", &a, &b, &c) // a=1, b=2, c=4

sscanf從源字串中讀取浮點數時,double型別的格式化字元為%lf, float型別的格式化字元為%f。

示例一:float型別

float ff;

sscanf("123.456", "%f", &ff); // ff = 123.456000

示例二:double型別

double dd;

sscanf("123.456", "%lf", &dd); // dd = 123.456000

sscanf 函式用法

read formatted data from a string.intsscanf constchar buffer,constchar format argument intswscanf constwchar t buffer,constwchar t format argument a f...

SSCANF用法詳解

名稱 sscanf 從乙個字串中讀進與指定格式相符的資料.int sscanf const char const char int scanf const char include sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤 stdin 為輸入源,前者以固定字串為輸入源。第乙個引數...

sscanf用法整理

部落格內容系網路整理。函式原型 int sscanf const char buffer,const char format,argument 引數 buffer 儲存的資料 format 格式控制字串 argument 選擇性設定字串 sscanf會從buffer裡讀進資料,依照argument的...