0 / 0 / 0
Регистрация: 19.09.2017
Сообщений: 28
1
Delphi 6-7

Удалить из первого слова буквы, которые встречаются во втором слове

02.04.2018, 15:23. Показов 1334. Ответов 13
Метки нет (Все метки)

Даны по одному слову в двух edit, Нужно удалить из первого слова буквы которые встречаются во втором слове.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.04.2018, 15:23
Ответы с готовыми решениями:

Из первого слова удалить все буквы, которые встречаются во втором слове
Даны два слова. Из первого слова удалить все буквы, которые встречаются во втором слове. Помогите...

Даны два слова. Вычеркнуть из первого слова те буквы,которые встречаются во втором слове
Помогите пожалуйста. Не могу связать множества с этой задачей Даны два слова. Вычеркнуть из...

Удалить из слова X те буквы, которые встречаются в слове Z;
Доброго времени суток. Имеется следующая задача: Удалить из слова X те буквы, которые встречаются...

Удалить из слова X все буквы, которые встречаются в слове Z.
Напишите программу, удаляющую из слова X все буквы, которые встречаются в слове Z. Help me!!!!

13
Эксперт Pascal/Delphi
4882 / 2755 / 848
Регистрация: 04.10.2012
Сообщений: 10,051
02.04.2018, 15:43 2
Лучший ответ Сообщение было отмечено MrD0ctoP как решение

Решение

MrD0ctoP,
Delphi
1
2
3
4
5
6
7
8
9
10
11
var
w1, w2:String;
i, j:Integer;
begin
w1 :=Edit1.Text; //вводим 1-е слово
w2 :=Edit2.Text; //вводим 2-е слово
for i :=Length(w1) downto 1 do
for j :=1 to Length(w2) do
if w1[i]=w2[j] then Delete(w1, i, 1);
ShowMessageFmt('Результат : %s', [w1]);
end;
1
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
02.04.2018, 15:44 3
Лучший ответ Сообщение было отмечено MrD0ctoP как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    s1,s2:string;
begin
s1:=Edit1.Text;
s2:=Edit2.Text;
for i:=length(s1) downto 1 do
if pos(s1[i],s2)>0 then delete(s1,i,1);
Edit1.Text:=s1;
end;
1
4866 / 4010 / 1007
Регистрация: 29.08.2013
Сообщений: 25,625
Записей в блоге: 3
02.04.2018, 15:54 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
edit1, edit2:string;
begin
  edit1:='hellow';
  edit2:='elo';
  for i:=length(edit1) downto 0 do
    if pos(edit1[i],edit2)>0 then edit1:=StringReplace(edit1,edit1[i],'',[rfReplaceAll]);
  edit1:=trim(edit1);
  showmessage('|'+edit1+'|');
end;
Puporev, а как же двойные буквы?
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
02.04.2018, 15:57 5
Цитата Сообщение от qwertehok Посмотреть сообщение
а как же двойные буквы?
А при чем здесь это? Идем по 1 строке с конца, если буква есть в строке 2, удаляем ее из 1 строки.
0
qwertehok
02.04.2018, 16:00
  #6

Не по теме:

извиняюсь

0
0 / 0 / 0
Регистрация: 19.09.2017
Сообщений: 28
02.04.2018, 16:03  [ТС] 7
Puporev, А как можно вывести букву(ы) которую удалили? и на каком месте они были
0
4866 / 4010 / 1007
Регистрация: 29.08.2013
Сообщений: 25,625
Записей в блоге: 3
02.04.2018, 16:06 8
s1[i] - это буква
а i - ее место
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
02.04.2018, 16:09 9
Delphi
1
2
3
4
5
6
for i:=length(s1) downto 1 do
if pos(s1[i],s2)>0 then
 begin
  delete(s1,i,1);
  Memo1.Lines.Add(s1[i]+'- '+inttostr(i))
 end;
Правда буквы будут печататься с конца, если обязательно нужно с начала, нужно переделывать код.
1
0 / 0 / 0
Регистрация: 19.09.2017
Сообщений: 28
02.04.2018, 16:10  [ТС] 10
qwertehok, Если пробую выводить i допустим в label, выдает 0, всегда, а если же s1[i] то не выдает ничего.
0
Модератор
8351 / 5562 / 2265
Регистрация: 21.01.2014
Сообщений: 23,867
Записей в блоге: 3
02.04.2018, 16:12 11
Цитата Сообщение от MrD0ctoP Посмотреть сообщение
Если пробую выводить
А вот кто видит, как именно Вы пробуете?

Добавлено через 18 секунд
О, и ответ уже дан...
0
4866 / 4010 / 1007
Регистрация: 29.08.2013
Сообщений: 25,625
Записей в блоге: 3
02.04.2018, 16:13 12
Цитата Сообщение от Puporev Посмотреть сообщение
нужно переделывать код.
код не нужно, можно строку развернуть))
0
0 / 0 / 0
Регистрация: 19.09.2017
Сообщений: 28
02.04.2018, 16:16  [ТС] 13
Puporev, К примеру если даны два слова Машина и Камень, указывает правильное место одинаковой буквы, но букву же указывает следующую т.е Ш
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
02.04.2018, 16:32 14
Лучший ответ Сообщение было отмечено MrD0ctoP как решение

Решение

Переворот строки не поможет, предлагаю написать так.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
    s1,s2:string;
begin
s1:=Edit1.Text;
s2:=Edit2.Text;
for i:=1 to length(s1) do
if pos(s1[i],s2)>0 then
Memo1.Lines.Add(s1[i]+'- '+inttostr(i));
for i:=length(s1)downto 1 do
if pos(s1[i],s2)>0 then  delete(s1,i,1);
Edit1.Text:=s1;
end;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.04.2018, 16:32
Помогаю со студенческими работами здесь

Удалить из слова X все буквы, которые встречаются в слове Y
#include <iostream> using namespace std; main() { string x, y; cin >>x; cin >>y;

Удалить из слова X все буквы, которые встречаются в слове Z
4)Напишите программу , удаляющую из слова X все буквы которые встречаются в слове Z. P.S Очень...

Удалить из слова все буквы, которые встречаются в другом слове
Напишите программу, удаляющую из любого слова все буквы, которые встречаются в другом слове

Символьные переменные: удалить из слова X все буквы, которые встречаются в слове Z
Напишите программу, удаляющую из слова X все буквы, которые встречаются в слове Z.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru