Присвоить строку в char []
- Войдите на сайт для отправки комментариев
Вс, 26/04/2020 - 22:24
char ModePrev[5]; // 4 + 1 символ завершения строки char Mode[5]; // 4 + 1 символ завершения строки if (!digitalRead(1)) Mode = "abcd"; // присваиваем значения else if (!digitalRead(2)) Mode = "efgh"; else Mode = " "; if (Mode != ModePrev) { // сравниваем строки ModePrev = Mode; // присваиваем строке значение другой строки lcd.setCursor(5, 0); lcd.print(Mode); // вывод строки }
Всё не работает. Как не используя класс String сделать это работающим?)
strcpy
А сравнивают строки с помощью strcmp, а не так как у тебя.
Ну и вообще перекладывать строки из переменной в переменную не особо эффективно и в данном случае не нужно. Сделай переменную - число, и печатай строку по ней.
http://arduino.ru/forum/programmirovanie/etyud-rabota-s-char-strokami
Скомпилировалось. Насчет переменной-числа я изначально хотел, но посчитал это лишний код писать.
С числом таки меньше обоих памятей используется.
strcpy
А сравнивают строки с помощью strcmp, а не так как у тебя.
Ну и вообще перекладывать строки из переменной в переменную не особо эффективно и в данном случае не нужно. Сделай переменную - число, и печатай строку по ней.
Оффтопный вопрос:
В среде ардуино перегрузка операторов возможна? Кто-то пользуется, если возможно? Или это бессмысленно тут?
В среде ардуино перегрузка операторов возможна? Кто-то пользуется, если возможно? Или это бессмысленно тут?
возможна.
Спасибо за ответ. Синтаксис как в классическом си?
Wiring - это и есть Си со специфическими библиотеками.
Ардуино пишется на С++.
В С перегрузки нет. Это два весьма разных языка.
В среде ардуино перегрузка операторов возможна?
А Вы никогда не замечали, что объекты типа String можно "складывать", чтобы вторая строка приклеилась в хвост первой?
Синтаксис как в классическом си?
В классическом Си нет перегрузки. В "неклассическом" тоже нет :-(
Приветствую всех!
Я грешен безграмотностью, поэтому прошу сильно не обижаться... На "чистом Си" никогда не писал, поэтому для меня "классический Си" это С++. Спасибо за замечание, учту на будущее.