该程序配合printf函数或python的打印函数结合使用,获取数据时将非常轻松!
比如说单片机和openmv之间的通讯
程序
#include "stdlib.h"
#include "string.h"
//str:存放数据的字符串
//keywords:希望或取数据的关键字符串
//返回浮点型数据,要整型在返回值前加一个强制转换即可
double data_chuli(u8 *str, u8 *keywords)
{
char * p;
char len = strlen((char*)keywords);
p = strstr((char*)str, (char*)keywords);
p+=len;
return atof((char*)p);
}
就这一点点,便可从一串长数据中获取想要的整数或浮点数出来
中文也可以哦!
以下效果:
下面是相同功能的程序
仅作参考,有兴趣的可以理解一下
//str:存放数据的字符串
//keywords:希望或取数据的关键字符串
//返回浮点型数据,要整型在返回值前加一个强制转换即可
double data_tiqu(u8 *str, u8 *keywords)
{
u8 key_num = strlen((char*)keywords);
NO:while(*str != keywords[0]){
if((*str=='\r') && (*(str+1))=='\n')
return 0;
str++;
}
str++;
for(u8 i=1; i<key_num; i++){
if(*str == keywords[i])
str++;
else{
if((*str!='\r') && (*(str+1))!='\n'){
str++;
goto NO;
}
else
return 0;
}
}
return atof((char*)str);
}