格式化字串操作

2021-05-23 01:03:33 字數 813 閱讀 2761

scanf 和sscanf是很好的進行格式化解析字串的函式,前者是針對標準輸入裝置,後者是針對乙個給定的字串,大致的用法都差不多。

sscanf() - 從乙個字串中讀進與指定格式相符的資料.

函式原型:

int sscanf( string str, string fmt, mixed var1, mixed var2 ... );

int scanf( const char *format [,argument]... );

說明:

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

其中的format可以是乙個或多個 ]type | ' ' | '/t' | '/n' | 非%符號}

注: 1、 * 亦可用於格式中, (即 %*d 和 %*s) 加了星號 (*) 表示跳過此資料不讀入. (也就是不把此資料讀入引數中)

2、表示a,b,c中選一,[d],表示可以有d也可以沒有d。

3、width表示讀取寬度。

4、:引數的size,通常h表示單位元組size,i表示2位元組 size,l表示4位元組size(double例外),l64表示8位元組size。

5、type :這就很多了,就是%s,%d之類。

6、特別的:%*[width] type 表示滿足該條件的被過濾掉,不會向目標引數中寫入值

支援集合操作:

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

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

%[^a] 匹配非a的任意字元,貪婪性

字串格式化

sprintf snprintf snprintf std stringstream std strstream boost lexical cast boost format cstring format 1 sprintf 使用 sprintf 不安全,輕則破壞資料的準確性,重則程式崩潰。請看下...

格式化字串

通常在使用字串的時候,會對字串進行格式化,然後輸出或呼叫 一般我們使用替換標記對字串進行格式化 string str1 string.format add is 1,2,3 而且在c 中的替換標記可以以任意順序和次數出現在格式化字串中,但替換值是按順序排的,而且替換標記不能超出索引範圍 string...

字串格式化

例如 string s hello map.put target world string res format s,map 有什麼用呢?比如在some.properties中配置模板字串,但是如果用 這種方式,在配置了spring讀取properties注入變數的時候,這個變數就找不到會報錯。這個...