Другие языки программирования и технологии

помогите пожалуйста решить задачу по Delphi

Дана строка, состоящия из русских слов, разделенных пробелами (с одним или несколькими).Найти длину самого длинного слова. P.S:За ранее благодарен.
Ikromjon Shahobjonov
Ikromjon Shahobjonov
133
Размер благодарности?
пиши в агент или аську 452371863
Виталий Юрченко
Виталий Юрченко
68 014
Лучший ответ
Ну если на 100% уверен, что в строке будут только русские буквы, то можно использовать такую функцию:

function MaxWordCount(const Text: string): Integer;
var
Index, Size: Integer;
begin
Result := 0;
Size := 0;
for Index := 1 to Length(Text) do
if Text[Index] = ' ' then
begin
if Size > Result then Result := Size;
Size := 0;
end
else
Inc(Size);
if Size > Result then Result := Size;
end;

Но если там могут встречаться другие символы, а нужно посчитать только русские слова, то можно использовать функцию:

function MaxRussianWordCount(const Text: string): Integer;
const
cRussianChars = 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
var
Index, Size: Integer;
Skipped: Boolean;
begin
Result := 0;
Size := 0;
Skipped := False;
for Index := 1 to Length(Text) do
if Text[Index] = ' ' then
begin
if (Size > Result) and not Skipped then Result := Size;
Size := 0;
Skipped := False;
end
else
begin
if AnsiPos(Text[Index], cRussianChars) = 0 then
Skipped := True;
Inc(Size);
end;
if (Size > Result) and not Skipped then Result := Size;
end;
Попробую написать функцию для Делфей, но Pascal\Object Pascal(Delphi) плохо помню
function FindLengthOfLongestWords(str:string)
var i,forCalculate, maxLength:integer;
begin
forCalculate:=0;
maxLength:=0;
for i:=1 to length(str) do begin
if(str<>' ') do begin
forCalculate:=forCalculate+1;
end
else begin
if(forCalculate>maxLength) begin
maxLength:=forCalculate;
end;
forCalculate:=0;
end;
end;
FindLengthOfLongestWords:=maxLength;
end;

Что-то в этом роде. Однако мог где-то не закрыть begin-end и от языка C\C# проявилась привычка писать лишние begin-end, но это сам исправишь
G7
Garik 777
467