У меня есть такой пример Код (C++): char* myStrings[]={"This is string 1", "This is string 2", "This is string 3", "This is string 4", "This is string 5","This is string 6"}; void setup(){ Serial.begin(9600); for (int i = 0; i < 6; i++){ Serial.println(myStrings[i]); delay(500); } } void loop(){ } но здесь записывается уже готовые строки, а мне надо записывать полученное время с GPRS и выводить на lcd. Как записать что то в Strings, а потом вывести на lcd?
Есть три подхода. 1. Зарезервировать пространство под "обычные" строки и использовать его (придется заранее озаботиться выделением пространства такого размера, чтобы его всегда хватало): Код (C): char myStrings[6][20]={"", "", "", "", "", ""}; void setup(){ Serial.begin(9600); for (int i = 0; i < 6; i++){ sprintf(myStrings[i],"Строка %d", i); Serial.println(myStrings[i]); delay(500); } } void loop(){ } 2. Динамически выделять память под "обычные" строки (тут надо следить за выделением и освобождением памяти, дабы не случилось плохого в виде доступа к не инициализированному указателю и утечек памяти): Код (C): char** myStrings; void setup(){ Serial.begin(9600); myString=malloc(6*sizeof(char*)) for (int i = 0; i < 6; i++){ myString[i]=malloc(20); sprintf(myStrings[i],"Строка %d", i); Serial.println(myStrings[i]); delay(500); } for (int i = 0; i < 6; i++){ free (myString[i]); } free(myString); } void loop(){ } 3. Использовать класс String (в случаях, когда речь идет о необходимости выиграть пару байт в памяти, может оказаться слишком затратным): Код (C): String myString[6]; void setup(){ Serial.begin(9600); for (int i = 0; i < 6; i++){ myString[i]="Строка "; myString[i]+=String(i); Serial.println(myStrings[i]); delay(500); } } void loop(){ }