ДАЮ 20 БАЛЛОВ!!!
с клавиатуры вводится строка, состоящая из слов, разделенных пробелами. Составьте программу, удаляющую лишние пробелы. пробел считается лишним, если он стоит в начале или в конце строки, следует за пробелом, стоит перед знаком препинания
BobbyFresnel:
Я написал строку для контрольного примера. И хочу ответ на свой вопрос.
И еще. Если Паскаль работает в Винде, он ASCII не пользует.
( - ! все знаки припинания
цифры - нет
все знаки припинания - перечислите, пожалуйста. Вам задача кажется ерундой, но она не такая простая.
думаю, что этого будет достаточно: - ' " : ; , ? ! ( ) .
кстати, на счет ascii. Я писала программу, использовала ascii, pascal видел символы из таблицы до 127 номера. дальше - нет
А это смотря какой паскаль. Если тот, что работает в дос-среде или дос-оболочке - не видит. Если PascalABC.NET или Delphi под windows- там все сложнее, .NET вообще работает с бвухбайтным Unicode.
Ну да ладно, Вы написали все символы, ктороые считатет знаками препинания - так тому и быть.
спасибо большое:)
Ответы
Ответ дал:
3
===== PascalABC.NET =====
begin
var p: set of char := ['-', '"', '''', ':', ';', ',',
'?', '!', '(', ')', '.'];
var s:= ReadlnString('Вводите:');
var (a, i) := (s.ToWords, 0);
while i < a.High do
begin
if a[i+1][1] in p then
begin
a[i] += a[i+1];
a[i+1] := '';
i += 2
end
else
i += 1
end;
s:= a.Where(p -> p.Length > 0).JoinIntoString;
Writeln(s)
end.
Приложения:
Вас заинтересует
1 год назад
1 год назад
1 год назад
1 год назад
3 года назад
3 года назад
8 лет назад