Как определить и использовать список/массив символов с помощью Serial.print
Я хочу определить список названий месяцев и получить к нему доступ при печати отчета.
Массив был определен следующим образом:
const char месяцы []=
{'Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'};
for (int i=0; i<=11; i++) {
Serial.print(months[i]);
}
Попытки:
Я искал помощь в разделе Массивы
в документации Arduino, насколько я нашел, никакого объяснения для такого случая не было, но массивы int
Будем благодарны за любую помощь.
@Guy . D, 👍3
Обсуждение1 ответ
Лучший ответ:
Вы почти у цели:
- Используйте символ* вместо символа, символ может содержать только один символ.
- Используйте " вместо ' (спасибо, Юрай)
Тогда вы получите:
const char* months[] =
{"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
Только что исправлено :-), обнаружил, что на этом компьютере установлена Arduino., @Michel Keijzers
Библиотека времени использует progmem и одну строку для коротких имен и умножает индекс на 3: https://github.com/PaulStoffregen/Time/blob/master/DateStrings.cpp, @Jot
@Jot, это тоже возможно, тогда вам просто нужна функция для извлечения трех символов; кстати, я не увидел никакой разницы в использовании PROGMEM в моем коде, возможно, это поможет, если это будет всего лишь одна строка (сэкономит 48 байт)., @Michel Keijzers
const char* с уважением[] ={"Спасибо", "вам", "очень", "большое!!"};
, @Guy . D
@Guy.D Всегда пожалуйста, @Michel Keijzers
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- форматирование строк в Arduino для вывода
- Очень простая операция Arduino Uno Serial.readString()
- DateTime в строку
- Как преобразовать строку в массив байтов
- Как отправить строку на мастер с помощью i2c
- Создание форматированной строки (включая числа с плавающей запятой) в Arduino-совместимом C++
Я просто хочу отметить, что Arduino использует C++. На такие простые вопросы о том, как создавать массивы и получать к ним доступ, можно ответить, прочитав учебник по C++. Нет ничего особенного в том, что код выполняется на Arduino., @Nick Gammon
@NickGammon - спасибо за ответ. Я знаю об этом, но все же не нашел объяснения такому случаю., @Guy . D
Очень хороший. *Я безуспешно пытаюсь определить этот список и получить к нему доступ* - Предлагаю в будущем задавать более четкие вопросы о проблеме. Я вижу, что на самом деле я могу **определить** массив так, как вы это сделали, без ошибок, но я вижу, что у вас возникнут проблемы с **печатью** его, потому что вы использовали одинарные кавычки, а не двойные. Это помогает объяснить, что на самом деле означает «безуспешно». Если бы я сказал: «Я пытался испечь торт, но безуспешно», что бы вы мне посоветовали? Другой рецепт? Другая техника? Лучшая духовка? Лучшие ингредиенты?, @Nick Gammon
Я перепишу это., @Guy . D
@NickGammon - вопрос теперь переписан. Надеюсь, это более понятно и не «не по теме»., @Guy . D
Очень хороший. Я вижу, что есть голоса за повторное открытие вопроса. Большую часть модерации здесь осуществляют участники сообщества, так что посмотрим, что с этим произойдет., @Nick Gammon