Например TDA7294

Форум РадиоКот :: Просмотр темы - Char* mess[] = {"...", "...", ...};
Форум РадиоКот
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
:wink:

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/