Удалить все лишние пробелы, оставив по одному между словами - Free Pascal
Формулировка задачи:
Задание "Написать программу, в которой вводится строка из слов с некоторым количеством пробелов между ними. Удалить лишие пробелы, оставив по одному между словами".
Только начал работать со строками, поэтому прошу проверить мой код (Вроде бы все работает, но мало ли, опять что-то забыл) :
Program TryingToUseString;
var string1 : string;
counter,positionOfspace,counter1,falsepos,mono: integer;
space : char;
begin
writeln('Input a string : ');
readln(string1);
space:=' ';
positionOfspace:=1;
while (positionOfspace<=length(string1)) do
begin
falsepos:=positionOfspace;
mono:=0;
while (string1[falsepos]=space) do
begin
inc(mono);
inc(falsepos);
end;
delete(string1,positionOfspace+1,mono-1);
inc(positionOfspace);
end;
write(string1);
end.Решение задачи: «Удалить все лишние пробелы, оставив по одному между словами»
textual
Листинг программы
uses strutils;
var s : string;
begin
write('s = '); readln(s);
s := DelSpace1(s); // вот это - уже готовая функция, заменяющая несколько пробелов на один
writeln(s);
end.
Объяснение кода листинга программы
- Используется модуль StrUtils.
- Объявлена переменная s типа string.
- Пользователю предлагается ввести строку.
- Введенная строка сохраняется в переменной s.
- Функция DelSpace1 заменяет несколько пробелов на один.
- Результат выводится на экран.