Ответ: Не такое оно и сложное.Главная проблема — то, что между словами может быть несколько пробелов.Устраним её, написав функцию, которая оставляла бы между словами по 1 пробелу:function RemoveSpaces(str : string) : string;begin //Тут цикл for, переписанный через while var iter := 1; //Проходим по строке while (iter < str.Length) do begin //Если видим 2 пробела подряд, удаляем 1 и откатывает итератор. if (str[iter] = ‘ ‘) and (str[iter + 1] = ‘ ‘) then begin str := str.Remove(iter, 1); iter -= 1; end; iter += 1; end; RemoveSpaces := str;end;Теперь мы можем получить кол-во слов очень просто:function CalcWords(str : string) : integer;begin CalcWords := RemoveSpaces(str).Split(‘ ‘).Count();end;Т.е. мы делим строку на массив через пробелы, и считаем кол-во элементов массива.полный код: https://pastebin.com/A63ggdWm
Источник znanija.site