我正在为Arduino写一些代码,但不确定是否要正确检查此字符变量的值。您能否告诉我这是否正确:

const char* front = "front";
const char* back = "back";

eyeballs(front);
eyeballs(back);

void eyeballs(const char* frontOrBack){

if (frontOrBack == "front") {
    digitalWrite(frontEyes, LOW);}//end if
  else if (frontOrBack == "back") {
    digitalWrite(backEyes, LOW);}//end else*/
}

最佳答案

您需要使用strcmp()比较C字符串。您要做的是指针比较。

if ( strcmp(frontOrBack, "front") == 0 ) {
   digitalWrite(frontEyes, LOW);}//end if
  else if ( strcmp(frontOrBack, "back") == 0 ) {
    digitalWrite(backEyes, LOW);}//end else*/
}


在这个比较中

if (frontOrBack == "front") {


指针值frontOrBack与字符串文字"front"的地址进行比较(在表达式中,字符串文字被转换为指向其第一个元素的指针)。

10-08 13:42