Вопросы по массивам строк
- Войдите на сайт для отправки комментариев
Ср, 05/02/2020 - 19:20
1) Как преобразовать строку в имя переменной (массива)?
uint8_t c0[] = {0,0,0,17,17,0,0,0}; uint8_t c1[] = {0,0,8,16,1,2,0,0}; uint8_t c2[] = {0,0,12,0,0,6,0,0}; for (byte i=0; i<=2; i++) {lcd.createChar(i, "c"+i);} // надо чтобы были имена массивов как c1, c2, с3
2) Как записать в массив указателей на строки новую строку по указанной позиции, или заменить некоторые буквы в строке, если это не сложнее?
char* InputName[] = {"Hello", "World Smile", "abcd"} ; // это начальный массив char MyString[] = "Arduino"; // эту строку надо записать в InputName[0] cahr MySymbols[] = "AB"; // эти буквы надо записать вместо двух посл. символов в inputName[1]
т.е.
2а) в InputName[0] надо записать MyString[] или любой текст, с заменой имеющейся там "Hello"
2б) в InputName[1] записать буквы "AB" вместо двух последних букв. Можно прочитать строку из массива, изменить ее, и записать целиком как в пункте 2а, но меня интересует замена конкретных букв
Итоговый массив указателей должен "выглядеть" как:
char* InputName[] = {"Arduino", "World SmiAB", "abcd"};
Подскажите как это лучше сделать. А то гугл явных наглядных примеров на такие "сложные" случаи не выдает ))
1) Как преобразовать строку в имя переменной (массива)?
никак. Имена существуют только в исходном коде, после компиляции все обращения к переменным делаются не по имени, а по адресу в памяти, поэтому для компилятора строка "c1" никак не связана с переменной с1
Вместо того чтоб создавать отдельные строки с0 с1 с2 - создайте массив
1) Печалька. Плохой компилятор ))
2а) Я чёт читал про всякие strncpy(), а всё просто сработало: InputName[1] = MyString;
Вы знаете хороший компилятор?
Нет. Познакомите?
Я на Вас надеялся. Мои компиляторы имён не оставляют.
Продолжим день печали))
Есть плата с МК, по нажатию пимпочек изредка выводящая текст по параллели 4 bit на 1602.
Хочется чтобы ардуино и этот МК выводили текст на один дисплей.
Можно подключится к пимпочкам МК и сделать в ардуино под них обработчик для всех возможных комбинаций, чтобы ардуино выводил текст "как у МК" + дополнительно свой, но лень.
Насколько будет геморно читать ардуиной данные, которые МК посылает на дисплей, чтобы их преобразовать в строки, и вывести ардуиной на дисплей? Или читать из дисплея то что МК записал в него (типа оба master и коммутатор на шину дисплея, ы), чтобы ардуино тоже выводил на этот дисплей?
Или принимать параллельные данные с МК ардуиной, и перенаправлять их на дисплей, а если даных нет, выводить свой текст.
Где-то мельком прочитал, что если подключатся к выходам 4 bit на дисплей, то надо декодировать данные идущие на LCD логическим анализатором, и непонятно каким образом, гемор в общем.
Есть варианты для такой затеи попроще?
Есть варианты для такой затеи попроще?
конечно есть. Не жидись, купи ардуине и тому МК по дисплею
Уже, но морда прибора не резиновая и смотрится не очень. Я бы купил какой-нить 2004 чтобы у него верхняя половина со своим интерфейсом, а нижняя со своим, два дисплея в одном, габариты меньше. Но человечество в обозримом будущем до таких нанотехнологий врядли дорастет (
Поставь 3-й МК, пусть проксирует стрим от первых двух.