Подсчет количества слов в строке
Задача
Подсчитать количество слов во введенной пользователем строке.
Для упрощения задачи считаем, что слова разделяются исключительно одним пробелом, а первый и последний символы строки не являются пробелами.
Решение
Описание переменных:
str
- строка;
i
- счетчик;
count
- подсчет количества слов.
Алгоритм решения задачи:
- Измеряем длину введенной пользователем строки.
- Если длина не нулевая, то это значит, что есть хотя бы одно слово.
- Перебираем каждый символ строки.
- Если очередной символ является пробелом, то увеличиваем счетчик слов.
Программа на языке Паскаль:
var str: string; i, count: integer; begin write('Your string: '); readln(str); i := length(str); if i > 0 then begin count := 1; while i > 0 do begin if str[i] = ' ' then count := count + 1; i := i - 1; end; end else count := 0; writeln('Number of words: ', count); readln; end.
Примечания:
Программа не будет корректно работать, если слова разделены больше, чем одним пробелом.
Другой вариант задачи: подсчитать количество слов в строке и вывести длину каждого слова.
var str, s: string; arr: array[1..255] of string; n,i,l: byte; begin readln(str); l := length(str); n := 0; s := ''; for i:=1 to l do if ((str[i] = ' ') or (i = l)) and (s <> '') then begin n := n + 1; if (i = l) and (str[i] <> ' ') then s := s + str[i]; arr[n] := s; s := ''; end else if str[i] <> ' ' then s := s + str[i]; writeln(n); for i:=1 to n do writeln(arr[i],' - ', length(arr[i])); end.
Пример выполнения программы:
one two three 3 one - 3 two - 3 three - 5
Комментарии
Паскаль, строка
Подсчитать количество слов в строке (фразе). Разделителями слов являются:
Считает независимо от количества пробелов
Ответ на Паскаль, строка от Гость (не проверено)
Да, в (if str[i] = ' ' then)…
Да, в (
if str[i] = ' ' then
) можно указать иor str[i] = ' '
иstr[i] = ' '
. Тогда будет и с несколькими пробелами работать...Не важно сколькими пробелами…
Не важно сколькими пробелами разделены слова, все равно найдет:
Тире не считалось словом
program asd;…