在学习正点原子STM32课程的92讲中的过程中,包含一个子函数,NMEA_Comma_Pos,代码如下:
#include "comma.h"
unsigned char NMEA_Comma_Pos(unsigned char *buf, unsigned char cx)
{
unsigned char *p = buf;
while (cx)
{
//if (*buf == '*' || *buf<32 || *buf>122)
if (*buf == '*' || *buf<' ' || *buf>'z') return 0XFF; //遇到'*'或者非法字符(ASCII码小于32||大于122),则不存在第cx个逗号
if (*buf == ',')cx--;
buf++;
}
return buf - p;
}
语句中包含了对buf指向的数据进行了比较,实际上比较的是ASCII码,可以有效的判别非法字符,是一个很好的数据搜索的习惯。