Pascal, строки Ввести строку и слово. Удалить слово из строки, если она в ней содержится.
Answers & Comments
A1dar// PascalABC.NET 3.2, сборка 1387 от 20.02.2017 // Внимание! Если программа не работает, обновите версию!
begin var aw:=ReadlnString('Введите строку:').ToWords; var w:=ReadlnString('Введите искомое слово:'); var i:=aw.FindIndex(e->e=w); var s:string; if i>-1 then if i=aw.Count-1 then s:=aw[:i].JoinIntoString else s:=(aw[:i]+aw[i+1:]).JoinIntoString else s:=aw.JoinIntoString; s.Println end.
Замечание: Учитываются именно слова, а не контекст, т.е. слово должно отделяться от остальной части строки пробелом, либо признаками начала/конца строки.
A1dar
Я бы и сам написал на .NET в одну строчку со всеми прелестями, типа лямбда и регулярных выражение, но автор попросит переписать это на "обычный" паскаль
A1dar
По крайней мере, попытался написать понятно, и использовать обычный синтаксис
Answers & Comments
// Внимание! Если программа не работает, обновите версию!
begin
var aw:=ReadlnString('Введите строку:').ToWords;
var w:=ReadlnString('Введите искомое слово:');
var i:=aw.FindIndex(e->e=w);
var s:string;
if i>-1 then
if i=aw.Count-1 then s:=aw[:i].JoinIntoString
else s:=(aw[:i]+aw[i+1:]).JoinIntoString
else s:=aw.JoinIntoString;
s.Println
end.
Замечание:
Учитываются именно слова, а не контекст, т.е. слово должно отделяться от остальной части строки пробелом, либо признаками начала/конца строки.