如何使用数组元素?

时间:2017-02-13 11:20:30

标签: c arrays stm32 hal

我使用以下命令从串口获取字符串数据:

int k;
for(k=0;k<100;k++){
  buf[0]=0;
  HAL_UART_Receive(&huart2,buf,1, 100);
  aRxBuffer[k]=buf[0];
}
HAL_UART_Transmit(&huart2,aRxBuffer, 100, 100);

这里正在阅读消息:

#TPS#TP10#47#100#1.02#3.3#1.04# 

我想在两个&#34;#&#34;之间使用数据。符号。例如; - TPS是我的方法名称,我希望像这样使用这个数据

if(method=='TPS'){
  dosomething();
}

47也是我的抵抗价值。我会在一些计算中使用这个值。但它是字符串而不是整数。

如何在If Statement中比较我的数据?

如何将数据从字符串转换为ingeter?

1 个答案:

答案 0 :(得分:1)

如果#是你的deliminator,你可以解析这样的标记:

char str[80] = "#TPS#TP10#47#100#1.02#3.3#1.04#";
const char s[2] = "#";
char *token;

/* get the first token */
token = strtok(str, s);

/* walk through other tokens */
while( token != NULL ) 
{
   printf( " %s\n", token );

   token = strtok(NULL, s);
}

要将字符串转换为数字,请使用atoi for int,atof for float。 有关这些工作的更多问题,只需谷歌搜索并在c / c ++规范中找到它们的定义