сначала сделать цикл - выкрутить все слова.
слова это буквенные символы, располагающиеся между символами пробел, точка, запятая, воскл и вопр знак или тире или многоточие
открыть массив заведомо большой, чем кол-во слов
и заталкивать слова туда по мере нахождения в цикле
потом считать в словах отдельно
массив можно двумерный делать
первый элемент слов, второй кол-во символов
Другие языки программирования и технологии
как в паскале подсчитать количество символов в словах ?
Есть такая функция - Lenght, возвращает количество символов в строке.
Так что если заведомо известно, что в строке именно слово, а не предложение, тогда смело используешь ее.
Если же анализируешь предложение, то делаешь цикл от 1 до Lenght и анализируешь строку как массив (для Pascal строка - массив символов).
Так что если заведомо известно, что в строке именно слово, а не предложение, тогда смело используешь ее.
Если же анализируешь предложение, то делаешь цикл от 1 до Lenght и анализируешь строку как массив (для Pascal строка - массив символов).
Есть такая функция Length, которая возвращает длину строки. Если строка состоит больше, чем из одного слова, то нужно бить строку на отдельные слова с помощью функций Copy, Pos и Delete по знакам препинания и пробелам и передавать эти слова в Length. Делать это нужно в цикле с условием "пока длина разбиваемой строки >0". Еще один вариант - идти по строке и подсчитывать символы между пробелами (знаками препинания) , сохраняя куда-нибудь и обнуляя счетчик на каждом.
[upd]
Количество букв в словах вернет функция Length ;) Ты ей слово, а она тебе его длину в буквах (символах) :)
[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;
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;
Похожие вопросы
- На паскале Упорядочить список по другому способу – в порядке возрастания длины фамилии (количества символов в фамилии).
- Напишите пожалуйста программу в паскале. Дана строка символов,определить количество слов,начинающихся с заданного символа
- 2. Отсортировать массив из n чисел и подсчитать количество уникальных чисел в массиве. на паскале
- как подсчитать количество слов в строке разделённым больше чем одним пробелом(Delphi)
- Дана матрица символов. Подсчитать количество строк, в которых букв больше, чем цифр.
- С++. Элементы массива задаются с клавиатуры. Подсчитать количество элементов массива, являющихся трехзначным числом.
- Помогите плизззз! задача в паскале! Дана строка символов. Группы символов, разделенные одним или несколькими пробелами
- Как отдельно подсчитать количество русских букв и английских букв в строке массива???
- Подсчитать количество 3-значных чисел,сумма цифр которых меньше либо равна 24
- дана строка содержащая латинские буквы, русские буквы и цифры. Подсчитать количество русских букв и цифр в данной строке