[英]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.