Дана строка содержащая любые символы кроме русских букв. Под "словом" будем понимать последовательность символов, ограниченную пробелами или стоящую в конце или начале строки. Между словами может быть несколько пробелов. Так же пробелы могут быть в конце или начале строки. Написать процедуру, которая удалит из строки слова в которых есть цифры и при этом сохранит все пробелы. Например строка: "ufd uue8dx 888 dmas 9" будет преобразована в строку: "ufd dmas " Использовать заголовок: procedure Preobraz(var Stroka: string);
procedure Preobraz(var Stroka: string); var i, start, finish, len: integer; word: string; begin i := 1; len := Length(Stroka); while i <= len do begin if Stroka[i] = ' ' then Inc(i) else begin start := i; while (i <= len) and (Stroka[i] <> ' ') do begin word := word + Stroka[i]; Inc(i); end; finish := i - 1; if not ContainsStr(word, '0123456789') then begin Delete(Stroka, start, finish - start + 1); i := i - (finish - start + 1); len := len - (finish - start + 1); end else begin word := ''; end; end; end; end;
Пример использования:
var Str: string; begin Str := 'ufd uue8dx 888 dmas 9'; Preobraz(Str); writeln(Str); // выведет 'ufd dmas ' end.
var
i, start, finish, len: integer;
word: string;
begin
i := 1;
len := Length(Stroka);
while i <= len do
begin
if Stroka[i] = ' ' then
Inc(i)
else
begin
start := i;
while (i <= len) and (Stroka[i] <> ' ') do
begin
word := word + Stroka[i];
Inc(i);
end;
finish := i - 1;
if not ContainsStr(word, '0123456789') then
begin
Delete(Stroka, start, finish - start + 1);
i := i - (finish - start + 1);
len := len - (finish - start + 1);
end
else
begin
word := '';
end;
end;
end;
end;
Пример использования:
varStr: string;
begin
Str := 'ufd uue8dx 888 dmas 9';
Preobraz(Str);
writeln(Str); // выведет 'ufd dmas '
end.