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

Ответы на вопрос

/*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;
}



Конечно, вот пример кода на C++, который решает данную задачу:
cpp#include <iostream>
#include <string>
#include <vector>
int main() {
std::string input;
std::cout << "Введите строку с предложениями: ";
std::getline(std::cin, input);
std::vector<std::string> sentences;
std::string currentSentence;
for (char c : input) {
currentSentence += c;
if (c == '.' || c == '!' || c == '?') {
sentences.push_back(currentSentence);
currentSentence.clear();
}
}
if (!currentSentence.empty()) {
sentences.push_back(currentSentence);
}
std::cout << "Количество предложений: " << sentences.size() << std::endl;
for (size_t i = 0; i < sentences.size(); ++i) {
std::cout << "Длина предложения " << i+1 << ": " << sentences[i].size() << " символов" << std::endl;
}
return 0;
}
Программа сначала считывает строку с предложениями от пользователя. Затем она проходит по каждому символу в строке, строит предложение до тех пор, пока не встретит один из символов '.', '!' или '?', после чего добавляет это предложение в вектор sentences
. После обработки всех символов строки, программа выводит количество предложений и длину каждого предложения в символах.


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