|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.04.2017, 21:47 | #1 |
Регистрация: 03.07.2015
Сообщений: 6
|
Удалить из символьного массива все вхождения цифр и арифметических знаков
Доброго времени суток! Помогите, пожалуйста, с заданием
Задание: Задан символьный массив S(n), n≤700. Разработать программу, которая изымает из этого массива все повторные вхождения цифр и арифметических знаков. Вывести результат на консоль. |
09.04.2017, 06:44 | #2 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Под какую ОС? Где твоё решение? Показывай свой код..
Нашедшего выход - затаптывают первым..
|
09.04.2017, 09:42 | #3 |
Форумчанин
Регистрация: 25.01.2015
Сообщений: 472
|
И, за компанию, название компилятора, каким образом изымать (просто не выводить на экран или сначала преобразовать строку).
|
09.04.2017, 11:58 | #4 | |
Регистрация: 03.07.2015
Сообщений: 6
|
Исходя из задания, можно предположить что строка объявлена и заранее известно ее длина:
Код:
1. Удалить ненужные элементы, сместив оставшиеся 2. Переписать массив, с нужными элементами ...но как это сделать, я не особо представляю) Цитата:
Вывести нужно начальный и конечный результат. |
|
09.04.2017, 14:29 | #5 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Так-как в ASCII-таблице коды цифр идут подряд, то их можно вытащить за один проход. Со-знаками уже такой фокус не пройдёт (в последовательности есть две дырки /см.рис.ниже/), и их нужно искать каждый в отдельности. А это ещё 4 прохода. Итого, изъять всё данные из строки можно за 5 проходов (если искать каждый символ отдельно, то за 2). ИМХО..
Нашедшего выход - затаптывают первым..
Последний раз редактировалось R71MT; 09.04.2017 в 14:34. |
09.04.2017, 19:18 | #6 |
Участник клуба
Регистрация: 16.06.2011
Сообщений: 1,428
|
Вот тебе решение на Фасм'е. Под Тасм переделаешь сам..
Массив заполняется случайным образом. Длина массива вычисляется тоже рандомно, в диапазоне 16..699, в следствии чего при каждом запуске программы данные и результат будут разные. Организовано в один проход.. Фильтруется только первая половина (127 символов) ASCII-таблицы, а это все символы, кроме кирилицы и псевдографики. Чтоб не расходовать память, найденные элементы помещается в тот-же массив, перезаписывая его с головы. Код:
Нашедшего выход - затаптывают первым..
|
09.04.2017, 23:26 | #7 |
Регистрация: 03.07.2015
Сообщений: 6
|
Немного погуглив, узнал про анонимные метки и что делают отдельные прерывания, также до этого я думал что команды lods и stos что-то, куда-то пересылают, а теперь знаю что, куда и откуда. Как минимум смогу объяснить данную программу.
Очень Вам благодарен! Отдельное спасибо за комментарии. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Удалить из записи числа все вхождения последней цифры | Анатолий666 | Общие вопросы C/C++ | 1 | 16.09.2015 18:31 |
Необходимо найти самое длинное слово и удалить все его вхождения | Julia1 | Помощь студентам | 3 | 30.06.2014 22:40 |
Из символьного массива исключить все элементы, содержащие символ 'A' | Ebon | Помощь студентам | 1 | 11.06.2012 01:19 |
Из текста удалить все вхождения некоторого наперед заданного символа и символ, стоящий в тексте перед ним | LittleStudent | Помощь студентам | 1 | 15.04.2011 00:46 |
Удалить из строкового значения все вхождения заданного символа. Delphi | Saka | Помощь студентам | 10 | 08.03.2010 01:22 |