c - 如何使用数组的元素?

标签 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# 

我想在两个“#”符号之间使用数据。例如; - TPS 是我的方法名称我想像这样使用这些数据

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

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

如何比较 If 语句中的数据?

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

最佳答案

如果 # 是分隔符,您可以像这样解析标记:

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 表示 int,使用 atof 表示 float。 有关这些工作的更多问题,只需在 google 上搜索并在 c/c++ 规范中找到它们的定义

关于c - 如何使用数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42202833/

相关文章:

c++ - GLEW 链接错误。错误 LNK2019

byte - CRC32 STM 32 上的 CRC 外设 : byte and word streams of same data give different results

arm - 如何在列表模式下配置我的 CAN 过滤器?

c - 易C : Program stuck after asking for prompt

c - 如何找到结构的大小?

c - 小型(ish)二维阵列的段错误

python - 使用 python 创建一个由 2 种颜色的框组成的图像

C - 从文件中读取句子到 malloc 创建的字符串数组中

c++ - 为什么我会收到浮点异常错误?

c++ - 如何计算stm32l0的i2c时序