Помощь - Поиск - Пользователи - Календарь
Полная версия: редактирование текста
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
nilson
Дан текст. Если первый символ текста не является малой латинской буквой, то оставить его без изменения. Если же это малая латинская буква, но за начальной группой малых латинских букв не следует цифра, то также оставить текст без изменения. Иначе каждую цифру, принадлежащую группе цифр, следующей за начальной группой малых латинских букв, заменить символом *.
Unconnected
Здесь тебе поможет множество и Case smile.gif
Lapp
Цитата(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
спасибо, попробуем...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.