Дана строка не более 40 символов, состоящая из слов, разделенных пробелами. Разработать программу удаления «лишних» пробелов. Лишними считать пробелы в начале строки до первого символа, второй и более пробелы между словами и пробелы в конце строки.
При решении данной задачи с использованием строкового типа отпадает необходимость посимвольного анализа строки. Функция Pos, которой в качестве подстроки заданы два пробела подряд, позволит определить все места в строке, где записаны несколько пробелов подряд. Поочередно удалив лишние пробелы, получим строку, в которой останется только проверить ипри необходимости удалить пробел в начале и пробел в конце.
Программа:
Пример 3. Упражнение выполнить в среде DelphiT
Составить программу, которая вводит строки, содержащие фамилию, имя, отчество и год рождения, а выводит - строки, содержащие фамилию, инициалы и возраст на текущий год. Например: Иванов Иван Иванович 1966 => Иванов И.И. 45. Завершение ввода - при чтении пустой строки.
1. Создайте новый проект в среде Delphi, выбрав в окне New Items объект Console Application.
2. Введите в редакторе кода код программы.
3. Проверьте работу программы
Для выполнения операций над строками используем строковые функции. Обработку строк будем выполнять в цикле до ввода пустой строки.
1. Начнем с определения местоположения первого пробела, который отделяет имя от фамилии. Для этого используем функцию Pos, а результат запишем в переменную с1.
2. Затем перепишем в строку результата фамилию, пробел и первый инициал. Туда же дописываем точку.
3. Для поиска следующего пробела придется копировать в рабочую строку часть исходной строки, начиная с символа после первой буквы имени. В этой строке вновь определяем местоположение пробела и заносим результат в переменную с2.
4. Теперь можно переписать в строку-результат второй инициал.
5. Удаляем из рабочей строки начало, включая второй инициал, и вновь определяем местоположение пробела, выделяя подстроку, содержащую год рождения. Удаляем из рабочей строки остаток отчества и преобразуем строку в число.
6. Полученное значение вычитаем из текущего номера года, а результат вновь преобразуем в строку и дописываем к строке результата.
7. Выводим результат на экран и вводим следующую строку.
Начало решения задачи преобразования строк
Программа:
Обработка и поиск символьной информации
В основе обработки символьной информации, как правило, лежит разбиение текста на слова и выполнение некоторых операций со словами.