sscanf的常用用法

2021-09-01 07:47:10 字數 1565 閱讀 9040

一、常見用法。   

有點類似於scanf的使用(略有區別),有點賦值的味道。 

1. char buf[512] = ;

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

printf("%s\n", buf);

結果為:123456

就是把123456賦值給字串型的buf

(注:各種的型別使用相同,都有%d,%s,%f等)

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

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

printf("%s\n", buf);  

結果為:1234

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

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

printf("%s\n", buf);

結果為:123456abcdedf

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

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

printf("%s\n", buf);

結果為:123456abcdedf

二、有關format符號上的特殊用法:

1.%[^a]:表示取到指定字元為止的字串。

如在下例中,取遇到空格為止字串。

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

printf("%s\n", buf);

輸入的結果為:123456

2.%[a-z] 表示匹配a到z中任意字元。

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

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

printf("%s\n", buf);

結果為:123456abcdedf

3.%*: *亦可用於格式中, (即 %*d 和 %*s) 加了星號 (*) 表示跳過此資料不讀入.

(也就是不把此資料讀入引數中)

結合第一點的用法:

例子:給定乙個字串iios/12ddwdff@122,獲取 / 和 @ 之間的字串,先將 "iios/"過濾掉,再將非'@'的一串內容送到buf中

sscanf("iios/12ddwdff@122", "%*[^/]/%[^@]", buf);

printf("%s\n", buf);

結果為:12ddwdff

給定乙個字串「「hello, world」,僅保留world。(注意:「,」之後有一空格)

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

printf("%s\n", buf);

結果為:world

%*s表示第乙個匹配到的%s被過濾掉,即hello被過濾了

如果沒有空格則結果為null。

sscanf常用用法整理

一 格式化輸出字串,相當於strcpy sscanf 123456 s str output 123456 二 取指定長度的字串 sscanf 12345678 4s str output 1234 三 取到指定字串為止。sscanf 123456789 abcdfe str output 1234...

NSDate的常用用法

1.建立或初始化可用以下方法 用於建立nsdate例項的類方法有 id date 返回當前時間 id datewithtimeintervalsincenow nstimeinterval secs 返回以當前時間為基準,然後過了secs秒的時間 id datewithtimeintervalsin...

NSDate的常用用法

1.建立或初始化可用以下方法 用於建立nsdate例項的類方法有 id date 返回當前時間 id datewithtimeintervalsincenow nstimeinterval secs 返回以當前時間為基準,然後過了secs秒的時間 id datewithtimeintervalsin...