将指针与C ++中的字节进行比较(Arduino)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将指针与C ++中的字节进行比较(Arduino)相关的知识,希望对你有一定的参考价值。

我正在玩Arduino,我想比较来自MQTT消息的字符串。

这是我捕获传入消息的代码:

void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  int i=0;
  for (i=0;i<length;i++) {
    Serial.print((char)payload[i]);
  }
  Serial.println();

Serial.println((char)payload[0]);

  if(topic==topic_conmutador){
    if(strcmp((char*)(payload[0]), "0")==0)
    digitalWrite(built_in_PIN, LOW);
  }

}

if(strcmp((char*)(payload[0]), "0")==0){给我这个错误信息:

error: invalid conversion from 'byte {aka unsigned char}' to 'const char*' [-fpermissive]

我究竟做错了什么?我只想检查传入消息的第一个字符是否为0。

答案

你可能只想要:

if (payload[0] == '0')

这是将字符串payload的第一个字符与字符'0'进行比较。

注意:"0"是一个字符的字符串类型,'0'是char类型。

以上是关于将指针与C ++中的字节进行比较(Arduino)的主要内容,如果未能解决你的问题,请参考以下文章

是否可以将两个任意函数与 C++17 中的 std::any 进行比较?

如何将结构字段与C中的变量进行比较? [复制]

如何将 const 字符串引用与字符串指针进行比较?

如何将 uint8_t 数组与 C 中的字符串进行比较?

将字符串与字符串进行比较(DatagramPacket 中的字节数组)

C ++将字符串的索引与另一个字符串进行比较?