|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.07.2021, 22:18 | #1 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
Посимвольное уменьшение строки. Возможно?
Добрый день.
Подскажите Посимвольное уменьшение строки (Не удалять последний символ), а именно уменьшение. Возможно? Суть задачи Есть 2 строки string num, num2; num = 333 num2 = 300 Нужно получить значения 333, 332, 331, 330..... до 300 Был бы int, делал бы циклом num-- pop_back не предлагать, думаю понятно. Есть какой то метод для этого? В программе у меня string. Так как это диапазон может быть АН333АК до АА444ВЕ и нужно получить все значения от меньшего к большему, или от большего к меньшему, тут без разницы, но нужны все значения диапазона. По каждому из существующих значений диапазона, я буду делать проверку, если ли эта строка в списке и выводить значения из базы согласно номер ТС Код:
|
07.07.2021, 22:54 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Использовать int перебирать значения, каждое значение делать строкой, у которой нужные символы до и после цифр.
Если надо перебирать и буквы, тогда опять-таки int, но генерить строку с переменной системой счисления для разных разрядов. В крайнем случае напрямую увеличивать каждую букву, при переполнении переходить к следующей и тд. Последний раз редактировалось waleri; 07.07.2021 в 22:57. |
08.07.2021, 00:16 | #3 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
Не понимаю, как я должен свои строки сделать int, перебрать, а потом обратно сделать string.
Переписывать классы под int не буду. Так как здесь нужно использовать string. Можно кодом показать как выше написанное сделать? num = 333 num2 = 300 Нужно получить значения 333, 332, 331, 330..... до 300 Но это все string |
08.07.2021, 06:34 | #4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
Берете самое правое значение и увеличиваете на единицу. Если вышли за пределы диапазона для этой позиции, тогда значение сбрасывается до "нулевого" и переходим к следующему разряду.
Например: Код:
|
08.07.2021, 13:20 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,619
|
Так ему же уменьшать надо...
Если длина строки фиксированная (именно 3) и старшая всегда '3', то можно при необходимости без цикла повторить этот перформанс ещё раз. Давно Си не занимался, не помню: а разве прямо с элементом массива char нельзя производить операции ? Что индексация в Си идёт с 0, ещё помню. Код:
Последний раз редактировалось digitalis; 08.07.2021 в 13:40. |
09.07.2021, 18:23 | #6 |
Пользователь
Регистрация: 01.01.2021
Сообщений: 30
|
Спасибо за помощь. Глупый был у меня вопрос.
Забыл одну мелочь. У меня бинарное дерево ) И все номера уже лежат упорядочены. Осталось передать в функцию на печать 2 ключа и печатать то что =>первого и <= второго Перед этим делаю swap. Что бы ключи приходили в нужном мне порядке. Код:
|
06.08.2021, 12:46 | #7 |
Заблокирован
Регистрация: 17.12.2018
Сообщений: 514
|
Преобразовать в число, вычесть 1, снова преобразовать в строку.
Код:
Последний раз редактировалось BDA; 06.08.2021 в 15:27. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Уменьшение размера изображения на php уменьшение качества картинки пример class php jpeg gif png | xzxz | PHP | 2 | 19.11.2012 11:11 |
посимвольное считывание | salwator | C++ Builder | 0 | 14.12.2011 20:38 |
Автоматическое добавление строки или условное копирование формул. Возможно ли? | PhilAT | Microsoft Office Excel | 8 | 24.04.2010 23:15 |
посимвольное считывание | DeFace | Общие вопросы C/C++ | 4 | 05.04.2009 23:11 |