Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Центр помощи > [C/C++] "Сжатие" строки и её ''разжатие" |
Автор: Гость_Гала 2.12.2005, 10:55 |
Здрасьте всем! Получила такое задание: 1. Написать ф-цию типа void, принимающую в качестве параметров две строки(source и dest). ф-ция должна "сжать" строку source в строку dest в "формате RLE" , т.е. если source имеет такой вид: "qqwwweeeerrrrrtttyy", то dest должна выглядеть так: "2q3w4e5r3t2y". 2. Написать ф-цию типа void, принимающую в качестве параметров две строки(source и dest) и выполняющую прямо противоположное действие, т.е. если source имеет такой вид:"4e5r3t" , то dest должна выглядеть так: "eeeerrrrrttt". Спасибо. |
Автор: Гость_Гала 2.12.2005, 11:07 |
Забыла добавить, что число повторений символов - не более 9. |
Автор: Dov 2.12.2005, 20:33 | ||
Не понял. ![]() ![]() |
Автор: newalex 2.12.2005, 21:19 |
Просматриваешь строчку посимвольно. Насколько я понял надо учитывать только подряд идущие буквы? Если так то считываешь символ (при этом присваиваешь счетчику едницу), затем следующий. Если он такой же как и прежний, то увеличиваешь счетчик ещё на единицу, если нет то вывод значения счетчика + сам сивол и т.д. |
Автор: newalex 3.12.2005, 09:29 |
А для расжатия... Посимвольно просматривать строку, если цифра, то присваиватьзначению счетчика эту цифру. И for counter downto 0 выводить следующую букву (так как количество цифр ограничено 9, от две цифры следом идти не могут). Затем следующий симол просматривать и т.д... |
Автор: Гость_Гала 3.12.2005, 13:43 | ||
Dov, это такое ограничение, имеется ввиду, что количество подряд идущих одинаковых символов в строке не должно превышать 9. newalex, спасибо.Теоритически я это понимаю, но на практике не получается, нехватка опыта. |
Автор: Dov 3.12.2005, 21:47 | ||
А-ааа, понял. Щщас сделаем. |
Автор: Dov 3.12.2005, 22:52 | ||
Гость_Гала , принимай. Не знаю, даже, что тута комментировать
|
Автор: Гость_Гала 5.12.2005, 19:58 |
newalex && Dov,огромное спасиба, попробую разобраться. ![]() ![]() ![]() |
Автор: Ciminance 24.10.2022, 09:06 |
Модератор: Сообщение скрыто. |
Автор: Queuego 5.11.2022, 03:18 |
Модератор: Сообщение скрыто. |
Автор: Saceaddep 7.12.2022, 08:17 |
Модератор: Сообщение скрыто. |