всем привет , объясните пожалуйста, возможно ли наполнить пустую строку, char переменными есть строка String val = ""; есть считанные из eeprom данные char nn1 = EEPROM.read(1);//9(57) char nn2 = EEPROM.read(2);//0(48) char nn3 = EEPROM.read(3);//4(52) как сделать так чтобы val = "904" ? пробовал такого типа конструкции val += (nn1,nn2,nn3); val меняется но не на то что нужно)
Код (C++): char* str[3]; for(byte i = 0; i < 3; i++) { str[i] = EEPROM.read(i+1); } String val = String(str);
возникла странная проблема: полученная таким образом строка почему то перестала искаться в другой строке Код (C++): if (val2.indexOf(val) > -1 ) { }; когда она задавалась явно в начале Код (C++): String val = "567"; приведенный выше пример нормально работал (искал в строке val2 строку val и найдя выдавал индекс) может проблема в том что при явном определении строка являлась константой , а после переназначения перестает ей быть? пробовал из этих соображений переназначение Код (C++): val+ = String(str); но после этого совсем все плохо становится)
Тут две ошибки. Нужно объявить массив на один элемент больше и поместить в конец 0. Иначе к первым трем символам могут прицелиться байты из стека. Код (C++): char str[4]; for(byte i = 0; i < 3; i++) { str[i] = EEPROM.read(i+1); } str[3] = 0; String val(str);