Информатика, вопрос задал Alesta296 , 8 лет назад

Pascal, строки
Ввести строку и слово. Удалить слово из строки, если она в ней содержится.

Ответы на вопрос

Ответил A1dar
0
var
  subs, s: string;
begin
  write('Enter the string: ');
  readln(s);
  s := s + ' ';
  write('Enter the word: ');
  read(subs);
  while pos(' ', subs) > 0 do
    delete(subs, pos(' ', subs), 1);
  subs := ' ' + subs + ' ';
  if pos(subs, s) > 0 then
    delete(s, pos(subs, s) + 1, length(subs) - 1);
  write('The resulting string: ', s);
end.
Ответил Аноним
0
Enter the string: воз возочек просто воз
Enter the word: воз
The resulting string: воз возочек просто
Ответил Аноним
0
Нет.... все же ошибка: вот так не работает:
Ответил Аноним
0
Enter the string: воз возочек
Enter the word: воз
The resulting string: воз возочек
Ответил Аноним
0
// 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.

Замечание:
Учитываются именно слова, а не контекст, т.е. слово должно отделяться от остальной части строки пробелом, либо признаками начала/конца строки.
Новые вопросы