Если слова разделяются одним пробелом, то задачу можно решить так: var s:string; k:integer; begin writeln('Введите строку'); readln(s); s:=s+' '; k:=0; while pos(' ',s)>0 do begin k:=k+1; delete(s,1,pos(' ',s)); end; writeln('Количество слов в строке = ',k); end.
Пример: Введите строку Вася пошел гулять. Количество слов в строке = 3
var s:string; k:integer;
begin
writeln('Введите строку');
readln(s);
s:=s+' ';
k:=0;
while pos(' ',s)>0 do
begin
k:=k+1;
delete(s,1,pos(' ',s));
end;
writeln('Количество слов в строке = ',k);
end.
Пример:
Введите строку
Вася пошел гулять.
Количество слов в строке = 3
begin
var s:=ReadlnString('>');
Print('Найдено слов:',s.ToWords.Count)
end.
Тестовое решение:
> Вася пошел гулять
Найдено слов: 3