C - IF(char [] ==“ZYX”)不起作用

时间:2013-03-22 21:37:01

标签: c arduino

我从arduino发送到arduino字符串(I2C),捕获并保存到char [10]。当我将这个变量与文本进行比较时,条件没有执行: - /我不知道为什么......

char dataRx[10] = "";

void DaemonReceiving(int howMany){
  int index = 0;

  while(Wire.available() > 0){
    char c = Wire.read();

    dataRx[index++] = c;
    dataRx[index] = '\0';
  }
  Serial.println(dataRx);

  if(dataRx == "HELLO"){
        Wire.beginTransmission(1);
        Wire.write("HI");
        Wire.endTransmission();
  }
}

3 个答案:

答案 0 :(得分:6)

要将dataRX字符串与“HELLO”进行比较,请使用:

if (strcmp (dataRx,"HELLO") == 0) {

    // matches HELLO

}

答案 1 :(得分:4)

如果它是C,你必须使用strcmp,否则你只是比较两个指针 - “HELLO”的位置和dataRx的位置(将失败)

请注意,这与arduino无关:)

答案 2 :(得分:4)

这会比较指针值:

if(dataRx == "HELLO")

您需要strcmp字符串比较:

if(strcmp(dataRx, "HELLO") == 0)