在char *数组中搜索字符串

时间:2018-08-26 15:58:39

标签: c++ string arduino c-strings

在Arduino Uno上的项目中,我需要这样输入字符串:

DDRS,parm1,parm2,...parm4 <cr>

参数的数量是可变的,但是至少一个但不能超过4,并且定界符始终是逗号。

命令只能是3个或4个字符的ASCII

我将命令放入这样的数组中:

char* Str[6] = {"ANA", "ANAR, "DDR", "DDRS", "DIGW", "DIGR"};

阅读一行

void loop()
{
    if (Serial.available() == 0) return;
    String  Line = Serial.readStringUntil('\n');         /* \r ==  CR  */
    int     ComPos = Line.indexOf(',');
    String  Cmd    = Line.substring(0,ComPos);

    /* here for test purposes     */

    Serial.print(Line);
    Serial.print(" ");
    Serial.print(Cmd);
    Serial.println();

    for (int n = 0; n < 6; ++n)
    {
      if (Str[n] == Cmd)
      {
          Serial.print("OK på index[");
          Serial.print(n);
          Serial.print("]");
          Serial.println();
      }
    }
  }
} 

但是我的问题是,它不起作用。我猜是因为Cmd是字符串,Strchar*

我已经在网上(也是Arduino社区)搜索了执行该程序的例程。我找不到任何内容(可能是我搜索错误),所以我被困在这里。

此索引号将在以后用于(某些)更多区分。

有人可以帮忙吗?

0 个答案:

没有答案