sscanf解析固定形态的字符串

某厂商demo中的解析字符串的一段代码,字符串格式是“2016/10/02 14:55:26~14:55:28”

        HB_SDVR_TIME bgntime,endtime;
        bgntime.dwYear    = atoi(g_Filename);
        bgntime.dwMonth    = atoi(g_Filename + 5);
        bgntime.dwDay    = atoi(g_Filename + 8);
        bgntime.dwHour    = atoi(g_Filename + 11);
        bgntime.dwMinute  = atoi(g_Filename + 14);
        bgntime.dwSecond  = atoi(g_Filename + 17);
        endtime.dwYear = atoi(g_Filename);
        endtime.dwMonth = atoi(g_Filename + 5);
        endtime.dwDay = atoi(g_Filename + 8);
        endtime.dwHour = atoi(g_Filename + 23);
        endtime.dwMinute = atoi(g_Filename + 26);
        endtime.dwSecond = atoi(g_Filename + 29);

这一直数到29,还是很佩服的

其实这种固定格式可以使用sscanf中匹配正则的方法来弄,比较简单明了。

几个规则:

基本格式为%[set],例如%[a-z],%[0-9]等,只匹配序列中的字符

^号用于非,即匹配序列外中的字符,遇到序列中的字符停止匹配

*号用于跳过某数据,后面也可以加匹配类型,%*[0-9]

sscanf最后返回匹配成功的数量

顺便再吐下槽,从一些公开的东西是可以看到一家公司的用心程度的,譬如该厂商网站上的demo,子工程名字好些个都是preview就不说了,编译不通过也不说了,编译后不能正常运行也不说了,就说包里不同目录下,两个同名头文件的差异,也真的是让人无语凝噎了

时间: 2024-11-04 22:30:00

sscanf解析固定形态的字符串的相关文章

XStream解析xml格式的字符串的方法

ProcessStatusUploadRootList processStatusUploadRootList = null; try { XStream xStream = new XStream(); xStream.alias("Root", ProcessStatusUploadRootList.class); xStream.alias("Header", ProcessStatusUploadHeader.class); xStream.alias(&q

perl按固定长度分裂字符串

$a="111111111111111111111111111111111111";@b = $a =~ /\w{3}/g; print "@b\n"; @c = unpack("(A3)*", $a);print "$c[7]\n"; for ($i=1;$i<=13;$i=$i+3){$b=substr($a,$i,3);push @d,$b;} print "@d"; perl按固定长度分裂字符

如何解析XML文件或字符串

1 引用XML文件 2 使用XMLReader解析文本字符串 3 使用XMLReader方法读取XML数据 具体代码实现如下: //初始化一个XML字符串 String xmlString = @"<bookstore> <book genre='autobiography' publicationdate='1981-03-22' ISBN='1-861003-11-0'> <title>The Autobiography of Benjamin Frank

Qt平台下使用QJson解析和构建JSON字符串

前言 上一篇介绍了C语言写的JSON解析库cJSON的使用:使用cJSON库解析和构建JSON字符串 本篇文章介绍,Qt开发环境下QJson库的使用示例,JSON解析配合API接口,就可以实现一些有趣的工具了,如全国油价查询工具,全国天气查询,空气质量查询,黄历查询,生活指数等等实用工具的开发. 分享几个免费的API提供平台: K780:http://www.k780.com/api 天气API:http://api.help.bj.cn/api/ 心知天气:https://www.senive

sscanf解析符合一定模式的字符串或者文件内容

1 char * pszLog = "192.168.110.98 - - 1264348800 \"GET http://www.xxxxxxx.cc/web/validate/captcha.php?cid=134&3307 HTTP/1.0\" 404 534 \"-\" \"Trend Micro WTP Add-On 1.2.1046\" TCP_MISS:FIRST_UP_PARENT 13"; 2 3 c

2 怎样解析XML文件或字符串

1 引用XML文件 2 使用XMLReader解析文本字符串 3 使用XMLReader方法读取XML数据 详细代码实现例如以下: //初始化一个XML字符串 String xmlString = @"<bookstore> <book genre='autobiography' publicationdate='1981-03-22' ISBN='1-861003-11-0'> <title>The Autobiography of Benjamin Fra

解析JSON对象与字符串之间的相互转换

在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台 接受的时候Request多个很麻烦,此时要按照类的格式或者 集合的形式进行传递. 例如:前台按类的格式传递JSON对象: var jsonUserInfo = "{\"TUserName\":\"" + userName + "\",\"TInterest\&qu

java解析Xml格式的字符串

最近在工作中,需要调别的接口,接口返回的是一个字符串,而且内容是xml格式的,结果在解析json的时候报错,最终修改了接口的返回方式,以Map返回, 才得以接收到这个xml的字符串,然后通过dom4j来解析这个xml字符串.xml格式如图: 解析代码如下: /** * dom4j解析Xml * @param xml */ public void getXmlAttribute(String xml) { Document doc = null; try { // 将字符串转为XML doc =

JSONObject和JSONArray解析和构造json字符串

JSON-lib包(最关键的两个类分别是JSONObject和JSONArray)完成对json的构造和一些基本方法的使用. 二者区别: ①JSONObject构造的字符串是键值对形式(key:value),多个键值对间以英文逗号连接: ②JSONArray构造的字符串是数组形式([array1,array2,...]). 需要使用的包下载链接:http://pan.baidu.com/s/1o7MZ8X8 一.JSONObject的使用. (1)JSON字符串的两种构造方法: ①使用Java对