Сравнение строк

Я пытаюсь сравнить две строки, но каждый раз получаю неловкие результаты. Когда я использую функцию Equals(), я всегда получаю неправильный ответ и никогда не удовлетворяю оператору IF . Когда я использую функцию compareTo(), я всегда получаю правильный ответ (который, кстати, неверен), но он всегда просто удовлетворяет оператору IF.

String input;
String Answer = "cat";

void setup()
{
  Serial.begin(19200);
}

void loop()
{
  while (Serial.available() == 0)
  {
    Serial.readStringUntil('\n');
    if (input.equals(Answer))
    {
      Serial.println(input + ", Correct");
    }
    else
    {
      Serial.println(input + ", wrong");
    }
  }
}

Выше приведен код, который я использую для изучения сравнения строк.

, 👍0


1 ответ


1

Вы определили переменную с именем input, но никогда не присваиваете ей значение . Таким образом, он всегда должен иметь свое начальное значение, которое представляет собой пустую строку.

Здесь:

Serial.readStringUntil('\n');

вы, вероятно, имели в виду

input = Serial.readStringUntil('\n');
,

Эдгар Бонет благодарит. Я инициализировал ввод, как вы упомянули. Но результаты те же самые. Я не знаю, что здесь не так., @ASAD ALI

@ASADALI, добавьте input.trim() после input = Serial.readStringUntil('\n'); чтобы удалить \r, @Juraj