Дана строка заканчивающаяся точкой подсчитать сколько слов в строке
Перейти к содержимому

Дана строка заканчивающаяся точкой подсчитать сколько слов в строке

  • автор:

Дана строка, заканчивающаяся точкой. Подсчитать, сколько в ней слов.

Считаем, что слова разделяются ровно одним пробелом. Тогда слов будет на единицу больше, чем пробелов.

var
i, n, p, k: integer;
s: string;

begin
Write(‘Введите предложение и закончите его точкой: ‘);
Readln(s);
s := Trim(s);
p := Pos(‘.’, s) — 1;
k := 0;
for i := 1 to p do
if s[i] = ‘ ‘ then k := k + 1;
Writeln(‘Введено слов- ‘, k + 1)
end.

Введите предложение и закончите его точкой: Карл у Клары украл кораллы.
Введено слов- 5

Нужно считать строку до точки и подсчитать кол-во слов в строке

Не понимаю где проблема в коде. Пытаюсь считать строку до точки в данном коде:

Но ничего не выводит, прошу расписать чуть подробнее — почему?

PS задачей запрещено использовать конструкцию if

0xdb's user avatar

CatException's user avatar

s.partition(«.») — разделит строку на три части: подстрока до первого встретившегося разделителя, сам разделитель ( «.» ) и оставшаяся после разделителя часть строки:

выберем подстроку до первого разделителя:

.split() — разобъет строку на слова

MaxU - stand with Ukraine's user avatar

Цикл while у вас выполняется всегда. Можно поменять на такое решение:

Для цикла while :

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.9.6.43612

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

дана строка заканчивающаяся точкой подсчитать сколько в строке слов с тремя буквами PASCAL

program zz1;
var s:string; // задаем переменную строкового типа
i, k, l:integer; // задаем переменную целого типа
begin
write(‘ введите строку ‘);
read(s); // вводим с клавиатуры строку
s:=’ ‘+s; // добавляем в начало строки пробел
for i:=1 to length(s) do
begin
if (s[i]=’ ‘) and (s[i+1]<>’ ‘) and (s[i+1]<>’.’) then
l:=i+1;
if (s[i]<>’ ‘) and (s[i]<>’.’) and ((s[i+1]=’.’) or (s[i+1]=’ ‘)) then
begin
k:=i;
if ((k-l)+1=3) then writeln(copy(s,k-2,3)); // проверяем, если расстояние между пробелами три буквы, то выводим слово на экран
end;
end;
end.

Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке

Не работает программа. Не могу понять почему. Помогите исправит. Вот код:

Дана строка, заканчивающая точкой. Подсчитать сколько слов в строке
Дана строка, заканчивающая точкой. Подсчитать сколько слов в строке. Я написала так,программа.

Для строки заканчивающаяся точкой подсчитать сколько слов в строке
8. Для строки заканчивающаяся точкой подсчитать сколько слов в строке.

Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке
Помогите пожалуйста! ) Дана строка заканчивающиеся точкой.Подсчитать сколько слов в строке.

Дана строка, заканчивающаяся точкой Подсчитать сколько слов в строке
22. Дана строка, заканчивающаяся точкой. Подсчитать сколько слов в строке

Лучший ответСообщение было отмечено sootyro как решение

Решение

1.
посмотрите на str.split, чтобы не усложнять себе жизнь
Еще лучше использовать регулярные выражения (re).

Сообщение от sootyro

Дана строка, заканчивающаяся точкой. Подсчитать сколько слов в строке
дана строка, заканчивающаяся точкой. Подсчитать сколько слов в строке

Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке
Дана строка, заканчивающаяся точкой. Подсчитать, сколько слов в строке.

дана строка, заканчивающаяся точкой. Подсчитать сколько слов в строке
дана строка, заканчивающаяся точкой. Подсчитать сколько слов в строке (borland C++)

Дана символьная строка ,заканчивающаяся точкой. Подсчитать сколько слов в строке. Выручите пожалуйста, напишите код
Нужно именно в Lazarus-е

Дана строка, заканчивающаяся точкой. Подсчитать сколько в ней слов.
Помогите решить! Дана строка, заканчивающаяся точкой. Подсчитать сколько в ней слов. Напишите.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *