1. 常見用法。
char buf[512] ;
sscanf("123456 ", "%s", buf);//此處buf是陣列名,它的意思是將123456以%s的形式存入buf中!
printf("%s\n", buf);
結果為:123456
2. 取指定長度的字串。如在下例中,取最大長度為4位元組的字串。
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
結果為:1234
3. 取到指定字元為止的字串。如在下例中,取遇到空格為止字串。
sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s\n", buf);
結果為:123456
4. 取僅包含指定字符集的字串。如在下例中,取僅包含1到9和小寫字母的字串。
sscanf("123456abcdedfbcdef", "%[1-9a-z]", buf);
printf("%s\n", buf);
結果為:123456abcdedf
當輸入:
sscanf("123456abcdedfbcdef","%[1-9a-z]",buf);
printf("%s\n",buf);
結果為:123456
5. 取到指定字符集為止的字串。如在下例中,取遇到大寫字母為止的字串。
sscanf("123456abcdedfbcdef", "%[^a-z]", buf);
printf("%s\n", buf);
結果為:123456abcdedf
6、給定乙個字串iios/12ddwdff@122,獲取 / 和 @ 之間的字串,先將 "iios/"過濾掉,再將非'@'的一串內容送到buf中
sscanf("iios/12ddwdff@122", "%*[^/]/%[^@]", buf);
printf("%s\n", buf);
結果為:12ddwdff
7、給定乙個字串"hello, world」,僅保留world。(注意:「,」之後有一空格)
sscanf(「hello, world」, "%*s%s", buf);
printf("%s\n", buf);
結果為:world
%*s表示第乙個匹配到的%s被過濾掉,即hello被過濾了
如果沒有空格則結果為null。
8.處理2006:03:18 - 2006:04:18(『-』兩邊有空格)和2006:03:18-2006:04:18(『-』兩邊無空格):
前者:char sztime1[16] = "", sztime2[16] = "";
sscanf("2006:03:18 - 2006:04:18", "%s - %s", sztime1, sztime2);
後者:char sztime1[16] = "", sztime2[16] = "";
sscanf("2006:03:18 - 2006:04:18", "%[0-9,:]-%[0-9,:]", sztime1, sztime2);
sscanf用法小結
sscanf可以對字串進行格式化,類似於乙個微型的正規表示式 話不多說,一切盡在 中。直接讀入 3char s abc 4 char buf 10 5sscanf s,s buf 將s讀入buf中 6printf s buf abc78 擷取指定長度字串 9char str 12345 10char...
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 str,const char format,說明 sscanf 會將引數str的字串根據引數format字串來轉換並格式化資料。轉換後的結果存於對應的引數內。成功則返回引數數目,失敗則返回0...