No.27633
Очень нужна была функция разделения строки на слова, и я нашел ее в учебнике "Паскаль для математиков". Только при запуске возникает ошибка "индекс за пределами массива". Вот код:
Var
s : String; {строка}
w : String; {слово}
j : Byte;
Const
Letters : Set Of Char = ['а'..'п','р'..'я','А'..'Я']; {буквы языка }
Begin
Write('Введите текст '); ReadLn(s);
j:=1;
While j<=Length(s) Do {последовательно проверяем все симвлы}
If s[j] In Letters Then Begin {встретили букву} w:=‘’; {начинаем формировать слово}
While (s[j] In Letters)And(j<=Length(s)) Do Begin
w:=w+s[j]; Inc(j); End;
{слово сформировано, теперь либо s[j] - не буква, либо строка закончилась}
WriteLn(w);
End
Else Inc(j); {пропускаем “пробел”}
End.
В чем может быть ошибка? На первый взгляд все очень правильно.