Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Вопрос по синтаксису языка С. (Arduino)

Dominator Знаток (472), на голосовании 7 лет назад
Вся программа уже большая, привожу кусочек и сейчас объясню в чем проблема:
// МЕНЮ S:
if (menu == 'S') {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(L"ВВЕДИТЕ ПАРОЛЬ");
lcd.setCursor(0, 1);
lcd.print(L"В-НАЗАД");
lcd.setCursor(15, 1);
lcd.print(sostoianie);
char pasword[3] = {0, 0, 0}; // Вот тут я определяю символьный массив
for (int i = 0; i != 99; ) { //Запускаю цикл на ввод пароля
char key = keypad.getKey(); // Получаю данные с нажатой кнопки и начинаем сравнение:
if (key == 'B') { // Если нажата B то мы пищим и выходим в меню А
tone(tonpin, (int)key * 10, longbuzzer);
menu = 'A';
i = 99; // вот так я выхожу из бесконечного цикла
}
if (key >= '0' && key <= '9') { // если нажата одна из цифр то загоняю её значение в символьный массив на место i
pasword[i] = key;
i = i + 1;
}
if (key == 'C') { // тут обнуляю массив
char pasword[3] = {0, 0, 0};
i = 0;
}
if (char pasword[3] == {'1', '2', '3'}) { // А вот тут и проблема, не знаю как правильно сравнить символьный массив
menu = 'D'; // Что бы при вводе пароля 123, перейти в меню D
i = 99;
}
} // Конец цикла for №1
} // Конец меню S

Подскажите правильный синтаксис сравнения символьного массива в условии IF
Голосование за лучший ответ
Alex Alex Мастер (1070) 7 лет назад
memcmp, strcmp. Зависит от того, терминирована ли строка \0.
DominatorЗнаток (472) 7 лет назад
Сейчас почитаем про это. Спасибо.
Krab Bark Искусственный Интеллект (286457) 7 лет назад
Проще всего массивы сравнить в цикле посимвольно. А еще проще ( ;) ) сделать массив длиной 4 и работать со строками.
DominatorЗнаток (472) 7 лет назад
т. е. просто так массивы не сравнить?
Krab Bark Искусственный Интеллект (286457) В С нет операции сравнения массивов.
Похожие вопросы