Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2019, 11:59   #1
ЛюсиЛью
 
Регистрация: 16.11.2018
Сообщений: 4
По умолчанию Удалить слово из середины строки

Подскажите, пожалуйста, как удалить слово между четвертым и пятым пробелом в делфи
ЛюсиЛью вне форума Ответить с цитированием
Старый 23.01.2019, 12:10   #2
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Тривиально, даж код не буду писать

Вот алгоритм:
1. Разбиваешь по пробелах строку и слова заносишь в строковый массив.
2. Затем в массиве удаляешь нужное слово.
3. Собираешь все слова в одну строку, добавляя после каждого слова (ну кроме последнего) пробел.

Жду код, потом будем править вместе
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 23.01.2019, 12:58   #3
ЛюсиЛью
 
Регистрация: 16.11.2018
Сообщений: 4
По умолчанию

Код:
unit Unit1;
interface
uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
 Dialogs, XPMan, StdCtrls;
type
 TForm1 = class(TForm)
 Label1: TLabel;
 Edit1: TEdit;
 Button1: TButton;
 XPManifest1: TXPManifest;
 Label2: TLabel;
 Edit2: TEdit;
 procedure Button1Click(Sender: TObject);
 private
 { Private declarations }
 public
 { Public declarations }
 end;
var
 Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
i,d:integer;
begin
s:=Edit1.Text;
d:=length(s);
for i:=d downto 1 do
 if s[i]=' ' then
 begin
 delete(s,i,(d-i+1));
 break;
 end;
 Edit2.Text:=s;
end;
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Вот, что получилось, но удаляется последнее слово(( Не пойму как написать, именно 4 и 5 пробел(

Последний раз редактировалось Вадим Мошев; 23.01.2019 в 13:07.
ЛюсиЛью вне форума Ответить с цитированием
Старый 23.01.2019, 13:00   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Искать не с конца, а с начала. Завести счетчик и считать пробелы.
p51x вне форума Ответить с цитированием
Старый 23.01.2019, 13:07   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А если слова не одним пробелом разделены? Какое слово удалится в строке:
Код:
1--2---3
для наглядности тире вместо пробела)
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.01.2019, 13:15   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Предпочитаю в таких случая следовать строго ТЗ. Написано - искать слово между 4 и 5 пробелом, и его удалять - ищем и удаляем.
Случаев и я могу накидать, например, таб считать пробельным? а число считать за слово? а если строка полностью из пробелов?..
p51x вне форума Ответить с цитированием
Старый 23.01.2019, 13:18   #7
apromix
PHP, Delphi
Форумчанин
 
Аватар для apromix
 
Регистрация: 07.05.2008
Сообщений: 388
По умолчанию

Можно предверительно удалять лишние пробелы. Но в условиях задачи этого нет. Ждем поправленого кода
Мыши плакали, кололись, но продолжали жрать кактус...
мои проекты
apromix вне форума Ответить с цитированием
Старый 23.01.2019, 13:20   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Случаев и я могу накидать
Та то ж для расширения кругозора ТС как бы, а не для p51x )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа со строками C++: удалить строки, содержащие определенное слово Alex_almaz C++ Builder 1 08.04.2014 10:05
Удалить слово из строки leekav Помощь студентам 1 29.05.2012 00:59
[C] Удалить из строки самое длинное слово onewho Помощь студентам 2 29.09.2010 20:32
Как удалить слово из строки? Ellita Общие вопросы C/C++ 7 19.09.2007 15:43