如何在 C (Arduino) 中进行简单的字符串比较?

How to make simple string compare in C (Arduino)?

我是 C 的新手,我正在尝试为 Arduino(基于接线语言)编写一个简单的代码,如下所示:

void loop() 
{  
  distance(cm);
  delay(200);    
}

void distance(char[3] unit) 
{
  if (unit[] == "cm") 
    Serial.println("cm");
}

有人可以告诉我如何正确编写吗? 提前致谢!

有几种方法。

最多"basic"个是使用strcmp函数:

void distance(char* unit) 
{
    if (strcmp(unit, "cm")  == 0) 
        Serial.println("cm");
}

注意如果字符串相等则函数returns0。

如果你有固定长度的字符串,也许测试每个字符会更快并且消耗更少的资源:

void distance(char* unit) 
{
    if ((unit[0] == 'c') && (unit[1] == 'm') && (unit[2] == '[=11=]')) 
        Serial.println("cm");
}

您还可以做其他事情(例如,如果字符串可以有不同的长度,则遍历数组)。

再见