Подсчета числа слов в произвольной строке.

программирование Delphi делфи

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

Не пойму в чем ошибка. Помогите ее решить.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;

type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Label1: TLabel;
procedure FormActivate(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure ComboBox1Click(Sender: TObject);


private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}


procedure TForm1.FormActivate(Sender: TObject);
begin
ComboBox1.SetFocus;
end;


procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin
ComboBox1.Items.Add(ComboBox1.Text);

ComboBox1.Text:='';
end;
end;

procedure TForm1.ComboBox1Click(Sender: TObject);
var st : string;
n,i,nst,ind: integer;
begin
n:=0;
ind:=0;
nst:=ComboBox1.ItemIndex;
st:=ComboBox1.Items[nst];
for i:=1 to Length(st) do begin
case ind of
0 : if st[i]<>' ' then begin
ind:=1;
n:=n+1;
end;
1 : if st[i]=' ' then ind:=0;
end;

end;

Label1.Caption:=IntToStr(n);

end;


end.
Ответы:
В общем логика такая:
1 копируешь текст в переменную,
2 убираешь все лишние пробелы по принципу заменить 2 пробела на 1 и так по циклу раза два - три (зависит от пользователя и что за текст) или же можно зациклить на поиск (если есть 2 пробела - возврат к началу и меняешь 2 пробела на 1), в общем у тебя получается строка с текстом по пробелу между словами..
3 считаешь количество пробелов +1 вот тебе и количество слов.


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.