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

时间:2015-07-08 11:44:38

标签: arduino

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

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

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

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

1 个答案:

答案 0 :(得分:2)

有几种方法。

最“基本”的是使用strcmp功能:

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

请注意,如果字符串相等,则函数返回0.

如果你有固定长度的字符串,那么测试每个字符的速度更快,耗费的资源更少:

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

您还可以执行其他操作(例如,如果字符串可以具有不同的长度,则迭代数组)。

再见