Дана строка слов, разделенных пробелами. Между словами может быть несколько пробелов, в начале и конце строки также могут быть пробелы. Требуется преобразовать строку так, чтобы в ее начале и конце пробелов не было, а слова были разделены одиночным символом "*" (звездочка).
Чтобы избавиться от пробелов в начале строки, надо удалять по одному первому символу до тех пор, пока первым не окажется непробельный символ. Счетчик при этом не надо увеличивать, т.к. исследуемым всегда будет первый символ.
Чтобы избавиться от пробелов в конце строки, надо удалять по одному последнему символу, пока последним не окажется непробельный символ. Поскольку при удалении символа длина строки уменьшается, то при использовании счетчика его надо уменьшать на 1. Хотя можно обойтись без него, если на каждой итерации цикла измерять длину строки.
Алгоритм замены пробелов на звездочки с учетом, что подряд идущих пробелов может быть несколько, а "*" должна быть одна:
var s: string; i: byte; begin readln(s); i := 1; // избавляемся от пробелов спереди while s[i] = ' ' do delete(s,i,1); i := length(s); // избавляемся от пробелов сзади while s[i] = ' ' do begin delete(s,i,1); i := i - 1 end; i := 1; // замена пробелов звездочками while i = length(s) do begin if s[i] = ' ' then if s[i-1] = '*' then begin delete(s,i,1); i := i - 1; end else begin delete(s,i,1); insert('*',s,i); end; i := i + 1; end; writeln(s); end.
Пример работы программы:
one tho three four five six seven
one*tho*three*four*five*six*seven
Комментарии
Помогите с задачей!
В файле 1.PAS дана строка символов, в которой встречается символ ‘:’. Записать в файл 2.PAS строку, полученную из исходной по следующему правилу: до первого символа ‘:’ заменить все вхождения символа ‘1’ символом ‘0’, после символа ‘:’ удалить все символы ‘8’.
Формулировка задачи
Формулировка задачи расплывчатая. Сколько символов двоеточия в файле? один или несколько? Если несколько, то после которого удалять восьмерки? после последнего двоеточия или первого?
В файле 1.PAS дана строка
В файле 1.PAS дана строка символов, в которой встречается символ ":"(за ранее колличество ":" не известно). Записать в файл 2.PAS строку, полученную из исходной по следующему правилу: до первого символа ":" заменить все вхождения символа "1" символом "0", после символа ":" удалить все символы "8".
Вы пишете: после символа ":"
Вы пишете:
после символа ":" удалить все символы "8".
Вопрос:
после какого символа ":" удалить все символы "8"? После первого? То есть остальными символами двоеточия пренебречь. Или после последнего символа двоеточия? Тогда задача решается немного по-другому, так как последний еще надо найти.
После 1-го ":"
После 1-го ":"
тогда решение проще, оно ниже
тогда решение проще, оно ниже
var f1, f2: file of
Приме входного файла 1.txt:
Результат в 2.txt:
Огромное вам Спасибо!!!
Огромное вам Спасибо!!!
Заменить пробелы и группы пробелов символом * (можно и так)