繁体   English   中英

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

[英]C - IF(char[] == “ZYX”) don't work

我从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();
  }
}

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

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

    // matches HELLO

}

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

请注意,这与arduino没有任何关系:)

这会比较指针值:

if(dataRx == "HELLO")

你需要strcmp字符串比较:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM