如何在 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");
}
您还可以做其他事情(例如,如果字符串可以有不同的长度,则遍历数组)。
再见
我是 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");
}
您还可以做其他事情(例如,如果字符串可以有不同的长度,则遍历数组)。
再见