簡體   English   中英

比較 C++ 中的字節指針(Arduino)

[英]compare pointer to byte in 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'是字符類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM