Задачка по c++ - 100 баллов Строка символов содержит несколько предложений m каждое из...

0 голосов
25 просмотров

Задачка по c++ - 100 баллов Строка символов содержит несколько предложений m каждое из которых заканчивается точкой, восклицательным или вопросительным знаком. Определить количество предложений и длину каждого из них в символах.


Информатика (441 баллов) | 25 просмотров
Дан 1 ответ
0 голосов

/*last_sent_end - индекс конца последнего найденного на данный момент предложения. Т.к. отсчет в C++ с 0, то начальное значение -1. Просматривается строка посимвольно. Встречен один из символов - счетчик m увеличивается, длина предложения вычисляется как разность текущего индекса и индекса конца предыдущей строки, и заносится в  std::vector arr_of_length. В last_sent_end сохраняется индекс найденного символа - индекс конца последней найденной строки. Случаи некорректного ввода не обработаны.*/

#include

#include

#include

int main()

{

int m = 0, last_sent_end = -1;

std::string str;

std::vector arr_of_length;

std::cout

std::getline(std::cin, str);

for (int i = 0; i < static_cast(str.length()); i++)

{

 const char symb = str[i];

 if (symb == '!' || symb == '?' || symb == '.')

 {

 m++;

 arr_of_length.push_back(i - last_sent_end);

 last_sent_end = i;

 }

}

std::cout

for (int sent_length : arr_of_length)

{

 std::cout

}

return 0;

}

(11.3k баллов)