• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Процедура удаления пробелов в строке

  • Автор темы Автор темы Astal
  • Дата начала Дата начала

Astal

Новые
Регистрация
5 Ноя 2010
Сообщения
22
Реакции
0
Баллы
0
Процедура удаления пробелов в строке

Дана задача написать программу для простого вычисления числа. Из особенностей: "В первой строке входного файла записано арифметическое выражение в виде <число> <операция> <число> =. Операция - это один из знаков +, - или *. В начале строки, в конце строки, а также между числами и знаком операции, числом и = может быть любое число пробелов. Гарантируется, что длина строки не превышает 200 символов."
Сама программа написана, но работает только при условии отсутствия пробелов (в противном случае выходной файл остается пустым). Мне нужна помощь в написании процедуры, которая будет удалять пробелы из строки. Например чтобы входная строка " 567 " преобразывалась в строку "567". Буду благодарен за любые мысли и помощь.
 
Как-то не вижу большой проблемы.
1. Открываем 2 файла - один исходный f1 (на чтение) другой f2 - без пробелов (на запись).
2. Считываем содержимое f1 построчно. Пусть, например, мы считали строку S.
3. Записываем посимвольно очередную строку в файл f2 по следующему алгоритму:
Код:
For i:=1 to Length(S) do
  If S[i]<>' ' then write(f2,S[i]);
writeln(f2);
И в чем загвоздка?
 
Загвоздка в том, что во второй файл нужно записать результат вычислений. Но за подсказку спасибо, буду копать в этом направлении.
З.Ы. А не получится ли, что символы во второй строке будут располагаться в той же позиции, что и в первой, ведь i в цикле у них будет одинаков - и не получу ли я все то же самое, что и первой? Это так, для ознакомления...
 
i сдесь используется толлько для обращения к символу в строке S. команда write последовательно пишет в файл символы строки, причем все кроме пробелов - то что вам и надо
 
Все, проверил метод, все работает. Еще раз всем огромное спасибо.
 
Назад
Сверху