Сдвиг значения в массиве.
- Войдите на сайт для отправки комментариев
Ср, 18/12/2019 - 20:09
Знающие люди, подскажите, что не так.
const int size_array = 15; byte mas[size_array] = {"0123456789"}; int i; bool _print = true; void setup() { Serial.begin(115200); } void loop() { //вывод в сериал всей исходной строки printOne(); _print = false; // больше не надо выводить byte tmp; tmp = mas[0]; for (int i = 0; i < size_array - 1; i++) mas[i] = mas[i + 1]; mas[size_array - 1] = tmp; for (int i = 0; i < size_array; i++) { Serial.print(char (mas[i])); } Serial.println(""); delay(1000); } void printOne() { if (_print) { for (int i = 0; i < size_array; i++) { Serial.print(char (mas[i])); } Serial.println(""); delay(1000); } }
Получаю то, что хочу
немного усложняю задачу
const int size_array = 15; byte mas[size_array] = {"0123456789"}; int i; bool _print = true; //добавлю строку////////////// String input_string = "0123456789"; /////////////////////////////// void setup() { Serial.begin(115200); } void loop() { //вывод в сериал всей исходной строки printOne(); _print = false; // больше не надо выводить byte tmp; tmp = mas[0]; for (int i = 0; i < size_array - 1; i++) mas[i] = mas[i + 1]; mas[size_array - 1] = tmp; for (int i = 0; i < size_array; i++) { Serial.print(char (mas[i])); } Serial.println(""); delay(1000); } void printOne() { //отправлю ее в массив//////////// input_string.getBytes(mas, size_array); ////////////////////////////////////// if (_print) { for (int i = 0; i < size_array; i++) { Serial.print(char (mas[i])); } Serial.println(""); delay(1000); } }
и получаю вот такое
что не так? Спасибо.
А че не так? Строка 37 восстанавливает mas, его размер 15, а в строке 10 символов. Что смущает? Код честно отрабатывает что написано. А что вы хотели - ХЗ.
То, что я хотел написано выше. А просил объяснить, что не так во втором коде и почему первый двигает символы, а второй добивает нулями.
То, что я хотел написано выше. А просил объяснить, что не так во втором коде и почему первый двигает символы, а второй добивает нулями.
Вы писали в коде стр37?
Строка 37 восстанавливает mas
На каждом проходе. В размере 10 символов. Остальные 5 сдвигаются значением первого символа, т.е. 0.
Пишите четче что вы ожидали от кода. И особенно от стр. 37.
Спасибо. От 37 строки ожидал ОДИН раз заполнить массив данными строки.
То, что я хотел написано выше.
Ни фига не написано. Написано "усложняю пример". А чего хотели сделать-то?