Для тех кто знает Pascal не могу найти ошибку

Для тех кто знает Pascal не могу найти ошибку.
Задание: подсчитать число слов в строке. Слова могут быть разделены одним или более пробелом.
Вот программа, что я написал, в чем ошибка?
program name;
var
str :string;
k,i,n :integer;
begin
k:=0;
read (str);
n:=length (str);
for i:=1 to n do
if str = ' ' then delete (str,1,1) else
begin
delete (str,1,Pos(' ',str));
k:=k+1;
end;
writeln (k);
end.

  • Зачем корежить исходную строку?

    var
    s: string;
    c, w: integer;
    iw: boolean;
    begin
    write('строка? ');
    readln(s);
    for c := 1 to length(s) do
    if not iw and (s[c] <> ' ') then begin
    iw := true;
    inc(w);
    end
    else if iw and (s[c] = ' ') then
    iw := false;
    writeln('кол-во слов: ', w);
    end.

  • 1. Код на pastebin.com, а то Ответы жуют.
    2. Это ты нам скажи, почему ты считаешь, что там есть ошибка, а мы поможем ее исправить. Мы - не компиляторы.
  • А зачем стирать 1-й символ в строке (после if)? кури, как работает str...