sscanf 的 類正則處理

2021-06-15 04:11:16 字數 1286 閱讀 7340

用sscanf函式

sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤(stdin)為輸入源,前者以固定字串為輸入源。

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。(注意:「,」之後有一空格,%s遇空格停止,加*則是忽略第乙個讀到的字串)   sscanf(「hello, world」, "%*s%s", buf);   printf("%s\n", buf);   結果為:world   %*s表示第乙個匹配到的%s被過濾掉,即hello被過濾了   如果沒有空格則結果為null。   

sscanf的功能很類似於正規表示式, 但卻沒有正規表示式強大,所以如果對於比較複雜的字串處理,建議使用正規表示式.

sscanf字串的處理

sscanf函式的高階用法 sscanf與scanf類似,都是用於輸入的,只是後者以螢幕 stdin 為輸入源,前者以固定字串為輸入源。函式原型 int scanf const char format argument 其中的format可以是乙個或多個 type t n 非 符號 注 1 亦可用於...

sscanf基礎用法 處理IP

函式定義 int sscanf const char str,const char format,1 函式說明 sscanf 會將引數str的字串根據引數format字串來轉換並格式化資料。格式轉換形式請參考scanf 轉換後的結果存於對應的引數內。返回值成功則返回引數數目,失敗則返回 1,錯誤原因...

sscanf正規表示式

c語言 sscanf正規表示式 2011 01 07 00 18 表頭檔案 include stdio.h 定義函式 int sscanf const char str,const char format,函式說明 sscanf 會將引數str的字串根據引數format字串來轉換並格式化資料。格式轉...