【问题标题】:How to make simple string compare in C (Arduino)?如何在 C (Arduino) 中进行简单的字符串比较?
【发布时间】:2015-07-08 11:44:37
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: arduino


    【解决方案1】:

    有几种方法。

    最“基本”的是使用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");
    }
    

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

    再见

    【讨论】:

      猜你喜欢
      • 2023-01-18
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      相关资源
      最近更新 更多