1 首先,看到sscanf時,會想到scanf,唯一不同的是前者是以固定的字符串爲輸入源;後者是以屏幕爲輸入源。
2 sscanf函數的定義爲 int sscanf(const char *str,const char * format,.......);函數說明,將參數str的字符串根據format字符串來格式化數據,轉化後的結果存在於對應得函數參數內。 返回值爲參數數目,返回0表示失敗。
3 sscanf函數和正則式結合使用。想
4舉例使用:
(1)sscanf("waascfg-aaa","%5s",str); 取指定長度的字符串,str="waasc”
(2)sscanf("waascfg-aaa","%[^-]",str);取“-”之前的字符串,str=“waascfg”
(3)sscanf("waascfg-aaa$","%[^-]",str);取“-”之後和“$”之間的字符串,str=“aaa”
(4)sscanf("waascfg, aaa","%[^ ]",str);取到指定字符爲止的字符串,取遇到空格爲止的字符串,str=“waascfg”
(5)sscanf("waascfg, aaa","%*s%s",str); 其中 %*s 表示第一個被匹配到的字符串waascfg被忽略掉了,取出空格後的字符串,既str=“aaa”。如果沒有中間的空格,會返回空。
關於正則表達式: 1> %[..]當字符屬於方括號裏表達式表示的字符集繼續讀取,否則停止;方括號裏時正則表示式,^是“忽略........”的意思。
2> %*[..]直接忽略方括號裏字符集並繼續讀取