sscanf的使用
最近在讀寫XML的過程中, 要讀出屬性的值以便在程序中使用,xml中屬性值都統(tǒng)一采用了字符串,但在程序中要根據(jù)不同需要讀取。
比如位置信息的值“0.0 0.0 0.0” 要將其讀出存在三個浮點數(shù)中。因而用到了一個簡單卻實用的函數(shù)(我的需求還沒復雜到用正則表達式)。
sscanf() - 從一個字符串中讀進與指定格式相符的數(shù)據(jù),利用它可以從字符串中取出整數(shù)、浮點數(shù)和字符串等等
函數(shù)原型:Int sscanf( const char *, const char *, ...);???
頭文件: #include<stdio.h>
其與scanf類似,都是用于輸入的,只是后者以鍵盤(stdin)為輸入源,前者以固定字符串為輸入源。
?
關于它的用法,網(wǎng)上有很多,在此就記下我用到的兩個用法:
const char* attrValue = pSecAttr->Value();?
float? a, b, c;
sscanf(attrValue, "%f %f %f", &a, &b, &c);? //將空格之間的字符讀出并格式化成浮點數(shù)存到a,? b, c 中
?
sscanf(attrValue, "%f[^ ]", &a);? //遇到空格停止,將第一個空格前的字符讀出并格式化存儲到a中
?
其中sscanf的集合操作還是蠻有用的,能應付一般復雜的字符串
支持集合操作:
???????? %[a-z]? 表示匹配a到z中任意字符,貪婪性(盡可能多的匹配)
???????? %[aB']? 匹配a、B、'中一員,貪婪性
???????? %[^a]??? 匹配非a的任意字符,貪婪性
?
轉(zhuǎn)載于:https://www.cnblogs.com/du_utopia/archive/2010/03/30/1700908.html
總結(jié)
- 上一篇: maven项目添加jar包
- 下一篇: JS基本语法