Определить длину самого короткого слова в строке

Задача: 

Дана строка, состоящая из слов, разделенных пробелами и знаками препинания. Определить длину самого короткого слова.

Описание переменных: 
  • w - длина очередного слова
  • min - длина самого короткого слова
Алгоритм решения задачи: 
  1. Если очередной символ строки является буквой, то увеличить значение переменной w.
  2. Иначе
    1. проверить не меньше ли значение w (при этом значение w не должно быть равно 0) чем min; если это так, то перезаписать значение min;
    2. обнулить значение w.
Программа на языке Паскаль: 

var
        s: string;
        i,w,min: byte;
 
begin
        readln(s);
        w := 0; // длина очередного слова
        min := 255;
        for i:=1 to length(s) do 
                if (s[i] >= 'a') and (s[i] = 'z') then // if s[i]  ' ' then в общем случае
                        w := w + 1
                else begin
                        if (w ) and (w  0) then 
                                min := w;
                        w := 0     
                end;
 
        writeln('The shortest word: ', min);
end.

Пример выполнения программы:

hi! say    bigest
The shortest word: 2

Комментарии

Для русских и английский букв.

var
        s: string;
        i,w,min: byte;
 
begin
        readln(s);
        w := 0;
        min := 255;
        for i:=1 to length(s) do 
                if (s[i] >= 'a') and (s[i] = 'z') or
                   (s[i] >= 'A') and (s[i] = 'Z') or
                   (s[i] >= 'а') and (s[i] = 'я') or 
                   (s[i] >= 'А') and (s[i] = 'Я') or
                   (s[i] = 'Ё') or (s[i] = 'ё') then
                        w := w + 1
                else begin
                        if (w ) and (w  0) then 
                                min := w;
                        w := 0     
                end;
 
        writeln('The shortest word: ', min);
end.