В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
zakriev767
zakriev767
10.06.2022 12:30 •  Информатика

Задачка по c++ -

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

Ответ:
1крутой1дядя1
1крутой1дядя1
06.08.2020 07:49

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

#include <iostream>

#include <vector>

#include <string>

int main()

{

int m = 0, last_sent_end = -1;

std::string str;

std::vector<int> arr_of_length;

std::cout << "Input string: ";

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

for (int i = 0; i < static_cast<int>(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 << "m = " << m << '\n';

for (int sent_length : arr_of_length)

{

 std::cout << sent_length << " ";

}

return 0;

}

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?