Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2012, 17:35   #1
МАйк Лжец
Новичок
Джуниор
 
Регистрация: 03.03.2012
Сообщений: 1
По умолчанию Замена слов местами VС++

Доброго дня всем!
Есть файл, в нем текст, надо считать текст с файла и поменять местами четные и нечетные слова (1<=>2, 3<=>4, 5<=>6 и т.д.)
Файл я инициализировал, открыл, считал все норм. не получается придумать алгоритм и код для замены слов местами. Собственно прошу вас помочь с телом цикла while в котором будет происходить замена.
ПС. у меня там еще файл проэцируется в память, но это не важно.
Код:
while(i<dwFileTextSize)
{

//pcTextMemory[i] - текущий эл.
i++;
}
МАйк Лжец вне форума Ответить с цитированием
Старый 04.03.2012, 04:44   #2
Blondy
Участник клуба
 
Аватар для Blondy
 
Регистрация: 07.07.2009
Сообщений: 1,385
По умолчанию

Наверное, про стеки говорить не имеет смысла, хотя это было бы тоже решением.

Предлагаю - два временных символьных контейнера (массивы). В один записываем четные слова (получается, что придется считать пробелы между словами, чтобы определить, где начало слова, а где конец), в другой - нечетные. Параллельно чистим файл, а потом возвращаемся на начало и начинаем записывать вначале четные слова (2), потом нечетные. При этом необходимо завести некий временный указатель, который будет хранить также место (индекс) символа, где завершилось считывание первой пары. Как только пара выгрузилась, чистим временные контейнеры и записываем в них следующую пару (3 и 4). Запись который уже начинается с того места, где стоял временный указатель.

Этот алгоритм используем, если надо в тот же файл записать... А если в новый, все просто - выливаешь в новый файл контейнеры по очереди. Если надо со стеками, то там вообще еще проще н е надо контейнеров заводить, стек сам как контейнер, заводишь в нем 3 поля и вперед.
"Все мы жаждем чудес. Чисто человеческое свойство." Carl Sagan
Blondy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Замена слов Афанасий[vedma] Visual C++ 0 20.11.2011 10:57
Замена строк местами U4-nik Общие вопросы Delphi 2 30.05.2011 10:42
Задача: Замена слов местами в Microsoft Office Word andresss Microsoft Office Word 10 08.01.2011 12:15
замена слов sergeiqwe PHP 2 05.05.2010 19:29
Дан рядок слов,поменять 1 слово со 2 местами, 2 с 3 и тд. shpack Помощь студентам 0 13.01.2010 00:44