##0196ST=31;CN=2011;PW=123456;MN=88888880000001;CP=&&DataTime=20120814154108;02-Rtd=148.03;S01-Rtd=8.97;01-Rtd=41.27;S03-Rtd=53;S02-Rtd=13.0;S04-Rtd=111.8;S08-Rtd=86891;B02-Rtd=393855.20;03-Rtd=226.74&&2D00";
对以上字符串进行数据的提取,以前用的方式都是用strtok,加上for循环等联合的方式实现,但是最近使用了sscanf以后发现了这个函数其实更加方便,以下是对数据一部分的提前,至于两者的效率方面的比较我就没有研究了。
#include<stdio.h>
#include<string.h>#include<stdlib.h>
int main()
{
char str[256]="##0196ST=31;CN=2011;PW=123456;MN=88888880000001;CP=&&DataTime=20120814154108;02-Rtd=148.03;S01-Rtd=8.97;01-Rtd=41.27;S03-Rtd=53;S02-Rtd=13.0;S04-Rtd=111.8;S08-Rtd=86891;B02-Rtd=393855.20;03-Rtd=226.74&&2D00";
float t;char *tmp,str1[124];
sscanf(tmp,"%15[^=]=%f",str1,&t);
printf("str=%s,%f\n",str1,t);
sscanf(tmp,"%15[^=]=%f",str1,&t);
printf("str=%s,%f\n",str1,t);
}