| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Char* mess[] = {"...", "...", ...}; https://radiokot.ru/forum/viewtopic.php?f=66&t=197222 |
Страница 1 из 1 |
| Автор: | Ariadna-on-Line [ Ср мар 19, 2025 17:58:11 ] |
| Заголовок сообщения: | Char* mess[] = {"...", "...", ...}; |
1/ функция sizeof(Mess) - выдаст размер записи о массиве функция sizeof(Mess[0]) - выдаст размер записи об первом элементе. Вопрос - как узнать собственную длину любого элемента массива ? Его длина присутствует - во втором байте двух-байтной записи об элементе, но как его прочитать ? Я в синтаксисе этих пойнтеров и звездочек - дуб бесперспективный (((( С уважением к знатокам. |
|
| Автор: | smacorp [ Ср мар 19, 2025 18:18:36 ] |
| Заголовок сообщения: | Re: Char* mess[] = {"...", "...", ...}; |
1/ Используйте strlen(Mess[0]) 2/ strcpy и strcat не подходят? Тогда memcpy. |
|
| Автор: | Ariadna-on-Line [ Ср мар 19, 2025 19:05:55 ] |
| Заголовок сообщения: | Re: Char* mess[] = {"...", "...", ...}; |
Спасибо что ответили. Нашел наконец сайт Гайвера с лекцией по этой теме. Читаю. Поэтому удалил второй вопрос. Но возможно задам еще вопросы. Спасибо. |
|
| Автор: | Ariadna-on-Line [ Ср мар 26, 2025 12:21:50 ] |
| Заголовок сообщения: | Re: Char* mess[] = {"...", "...", ...}; |
Всем Привет. Вот успешно работающий код. Он два раза вытягивает строки текста из ПРОГМЕМа, дописывает к ним всякие данные и получившуюся строку отправляет на вывод. В функции используется временнй char buf-ер. Возник вопрос : 1. Как не создавать буфер, а напрямую грузить из ПРОГМЕМА в строку. Сейчас это не получается - пишет о несоответствии типов данных. С уважением. Спойлерconst char TimeMess[] PROGMEM = "Время(ч:м:с|д/м/г) - ";const char TempMess[] PROGMEM = "Температура = "; // функция строки часов + температуры (2) void TCrun() { String tape = ""; char buf_g[strlen_P(TimeMess) + 1]; // Выделим буфер достаточной длины С именем buf_g strcpy_P(buf_g, TimeMess); // Копируем строку в буфер tape += buf_g; // Отдаем буфер в работу tape += now.hour(); tape += ':'; tape += now.minute(); tape += ':'; tape += now.second(); tape += " | "; tape += now.day(); tape += '/'; tape += now.month(); tape += '/'; tape += now.year(); tape = utf8rus(tape); Run(); ---------- tape = ""; buf_g[strlen_P(TempMess) + 1]; // Выделим буфер достаточной длины strcpy_P(buf_g, TempMess); // Копируем строку в буфер tape += buf_g; // Отдаем буфер в работу tape += rtc.getTemperature(); tape += " C'"; tape = utf8rus(tape); Run(); } |
|
| Автор: | BOB51 [ Ср мар 26, 2025 14:32:54 ] |
| Заголовок сообщения: | Re: Char* mess[] = {"...", "...", ...}; |
Использовать строку как массив... Собственно одна из позиций "референса" - string - char array |
|
| Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|


