Удаление определенных символов из строки
- Войдите на сайт для отправки комментариев
Пнд, 16/10/2017 - 18:38
Доброго времени суток, Ардуинщики. Препод нам дал задание: написать программу, удаляющую символы из строки. Соответственно, я разбила эту задачу на два этапа: чтение слова+обнуление массива для принятия нового слова (пригодится потом для ввода нового слова) и удаление непосредственно букв. Приступила к выполнению первой части поставленной задачи, код прилагаю. К сожалению он работает только 9 раз, потом при нажатии enter просто ничего не происходит. Почему?
char WORD[10]; char LETTER; int i=0; void setup() { Serial.begin(9600); Serial.write("Write smth"); } void loop() { while (Serial.available()) { WORD[i] = Serial.read(); if (WORD[i] == '\n') { Serial.write('\n'); Serial.write("The word is "); while(i < 10) { WORD[i] = '\0'; i++; } for (int k=0; k<i; k++) { Serial.print(WORD[k]); } for (int k=0; k<i; k++) { WORD[k]=0; } } i++; } }
while
(i < 100500)
будет работать 100499 рас
*не благодари.
while
(i < 100500)
будет работать 100499 рас
неа... Будет работать столько же, как и у автора.
Чем больше кол-во "осторожно, специалист!" на просторах - тем лучше для мну - работы будет больше.
Пользуйтесь:
Заодно есть проверка на невыполз за границы массива. Единственное "но" - не заливал и не тестировал, банально лень :)
lisishe-fox, Вы забыли обнулить i сразу после строки 10. Сначала она у Вас и так 0, а потом всё идёт вразнос.
Так, хорошо, спасибо, поняла, что необходимо обнуление. Доделала программу: пишешь слово - enter - пишешь букву - enter - он выдает количество повторов этой буквы - снова пишешь букву - enter - он букву удаляет из слова. Все выполняется, но только 1 раз, почему? Что не так в обнулении?
Так, заработало! Но появился новый вопрос: почему при прогоне в конце слова появляется символ "квадратик"? код особо не изменился, но прилагаю: