Другие языки программирования и технологии

как в паскале подсчитать количество символов в словах ?

сначала сделать цикл - выкрутить все слова.
слова это буквенные символы, располагающиеся между символами пробел, точка, запятая, воскл и вопр знак или тире или многоточие

открыть массив заведомо большой, чем кол-во слов
и заталкивать слова туда по мере нахождения в цикле

потом считать в словах отдельно
массив можно двумерный делать
первый элемент слов, второй кол-во символов
ВК
Валера Киселёв
13 606
Лучший ответ
Есть такая функция - Lenght, возвращает количество символов в строке.
Так что если заведомо известно, что в строке именно слово, а не предложение, тогда смело используешь ее.
Если же анализируешь предложение, то делаешь цикл от 1 до Lenght и анализируешь строку как массив (для Pascal строка - массив символов).
Кирилл Юзеев
Кирилл Юзеев
15 333
Есть такая функция Length, которая возвращает длину строки. Если строка состоит больше, чем из одного слова, то нужно бить строку на отдельные слова с помощью функций Copy, Pos и Delete по знакам препинания и пробелам и передавать эти слова в Length. Делать это нужно в цикле с условием "пока длина разбиваемой строки >0". Еще один вариант - идти по строке и подсчитывать символы между пробелами (знаками препинания) , сохраняя куда-нибудь и обнуляя счетчик на каждом.
[upd]
Количество букв в словах вернет функция Length ;) Ты ей слово, а она тебе его длину в буквах (символах) :)
Попробуй так - сам лично не проверил - но должно работать - код написан на скорую руку если что то будет не понятно могу объяснить... .

var
Text: string;
i, kol_slov, kol_bukv: integer;
begin
Text:='НАШ ТЕКСТ ДЛЯ ПРОВЕРКИ';
for i := 1 to Length(Text) do
begin
if Pos(Text[ i ], ' ') > 0 then
begin
kol_slov:=kol_slov+1;
delete(Text,Pos(' ',Text),1);
end;
if length(text)=i then
begin
if Pos(Text[length(text)], ' ') = 0 then
kol_slov:=kol_slov+1;
end;
end;
kol_bukv:=length(text);
end;

Похожие вопросы