sscanf处理字符串实例

sscanf处理字符串很是方便,但是特别要注意接收类型的长度,如果长度不统一可能会导致程序崩溃,内存泄漏。

两个char 转16进制

	char testhere[6]={0x31,0x38,0x34,0x32,0x36,0x33};
	unsigned int a[3];
	sscanf((const char*)testhere,"%2x%2x%2x",&a[0],&a[1],&a[2]);

接收一个GPS的GPGGA的数据

特别注意的是浮点数的接收,double就用%lf,避免出错,否则可能会越界,内存溢出

char *phead = {$GPGGA,071432.00,3036.01954594,N,10405.71174136,E,4,21,0.6,493.68986996,M,-42.80,M,02,3077*4B}
	sscanf((const char*)(p_head),\
	",%f,%lf,%c,%lf,%c,%d,%d,%f,%lf,%c,%f,%c,%d,%d*%2X",\
	&gps.gga.Utc,\
	&gps.gga.Lat,\
	&gps.gga.N_S,\
	&gps.gga.Lon,\
	&gps.gga.E_W,\
	&gps.gga.Qual,\
	&gps.gga.Sat,\
	&gps.gga.Hdop,\
	&gps.gga.ALT,\
	&gps.gga.A_units,\
	&gps.gga.Undulation,\
	&gps.gga.U_units,\
	&gps.gga.Age,\
	&gps.gga.Stn_ID,\
	&gps.gga.Check_Sum);

零散知识点记录

指针对数值的++操作
用指针对数值进行加一
*p++
此处禁忌,不可以用*p--   p--的优先级高于*p
应改为(*p)++
char和unsigned char的区别分析

取值范围:

char-128--127
unsigned char 0--255

位分析:
char的最高位是符号位
当由char强转为int时,符号位仍在最前面
当char和unsigned char不用与比较转换,打印时,他们在内存中占的位是一样的,在内存中都是8字节。完全一样

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值