Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ редактирование текста

Автор: nilson 24.01.2009 23:55

Дан текст. Если первый символ текста не является малой латинской буквой, то оставить его без изменения. Если же это малая латинская буква, но за начальной группой малых латинских букв не следует цифра, то также оставить текст без изменения. Иначе каждую цифру, принадлежащую группе цифр, следующей за начальной группой малых латинских букв, заменить символом *.

Автор: Unconnected 25.01.2009 0:08

Здесь тебе поможет множество и Case smile.gif

Автор: Lapp 25.01.2009 9:59

Цитата(nilson @ 24.01.2009 19:55) *
Дан текст. Если первый символ текста не является малой латинской буквой, то оставить его без изменения. Если же это малая латинская буква, но за начальной группой малых латинских букв не следует цифра, то также оставить текст без изменения. Иначе каждую цифру, принадлежащую группе цифр, следующей за начальной группой малых латинских букв, заменить символом *.

Я буду предполагать, что весь текст находится в переменнной s типа string.
const
LowLatin: set of char=['a'..'z'];
Digits: set of char=['1'..'9'];

var
s: string;
i: integer;

begin
Write('input text: ');
ReadLn(s);
while (Length(s)>0)and(s[1]=' ') do Delete(s,1,1); {delete spaces from the begining}
if Length(s)>0 then begin
i:=1;
while (Length(s)>=i)and(s[i] in LowLatin) do Inc(i);
if i>1 then while (Length(s)>=i)and(s[i] in Digits) do begin
s[i]:='*';
Inc(i)
end
end;
WriteLn('output text: ',s)
end.

Вот, примерно так.

Автор: nilson 25.01.2009 20:13

спасибо, попробуем...