1. 截取

以SW,33,55,78,\r\n为例

char* pa,pb,pc,pd,pe;
uint8_t usart5_rxsavebuf[] = "SW,12,32,33,55,78,\r\n";

strtok((char *)usart5_rxsavebuf, ",");
pa = strtok(NULL, ",");
pb = strtok(NULL, ",");
pc = strtok(NULL, ",");
pd = strtok(NULL, ",");
pe = strtok(NULL, ",");

得到结果:
pa = “SW”;
pb = “33”;
pc = “55”;
pd = “78”;
pe = “\r\n”;

2. 转换

将得到的 char 类型数据转换为double类型或者int类型,所用函数atoi和strtod。

int	atoi (const char *__nptr);
double	strtod (const char *__restrict __n, char **__restrict __end_PTR);
double get_data;

char* end;
get_data = strtod(pb, &end);

得到 get_data = 33;

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐