Необходим код на C++ для ввода предложения, состоящего не более чем из 80 символов. Нужно определить длину первого

  • 9
Необходим код на C++ для ввода предложения, состоящего не более чем из 80 символов. Нужно определить длину первого слова и количество слов, которые длиннее первого. Вывести эти слова. Расположение пробелов между словами может быть любым.
Yascherka_3311
7
Конечно, я могу помочь вам с написанием кода на C++, который выполнит задачу о писании предложения.

cpp
#include
#include
#include

int main() {
std::string sentence;
std::cout << "Введите предложение: ";
std::getline(std::cin, sentence);

std::vector words;
std::string word;

// Разбиение предложения на отдельные слова
for (char c : sentence) {
if (c != " ") {
word.push_back(c);
}
else {
words.push_back(word);
word = "";
}
}
words.push_back(word); // Добавление последнего слова

int first_word_length = words[0].length();
int longer_words_count = 0;
std::vector longer_words;

// Определение длины первого слова и подсчет количества слов, длина которых превышает первое слово
for (int i = 1; i < words.size(); i++) {
if (words[i].length() > first_word_length) {
longer_words_count++;
longer_words.push_back(words[i]);
}
}

// Вывод результатов
std::cout << "Длина первого слова: " << first_word_length << std::endl;
std::cout << "Количество слов, длина которых превышает первое слово: " << longer_words_count << std::endl;
std::cout << "Эти слова: ";
for (std::string word : longer_words) {
std::cout << word << " ";
}
std::cout << std::endl;

return 0;
}


Давайте разберем, как работает этот код.

1. Мы начинаем с объявления необходимых заголовочных файлов: `iostream` для ввода/вывода, `string` для работы со строками и `vector` для хранения и обработки списка слов.

2. В функции `main` объявляем переменную `sentence`, которая будет хранить введенное предложение.

3. С помощью функции `std::getline` мы получаем предложение от пользователя.

4. Мы создаем вектор `words`, в котором будут храниться все слова из предложения, а также строку `word`, которая будет использоваться для временного хранения каждого слова.

5. Далее мы проходим по каждому символу предложения. Если символ не является пробелом, мы добавляем его к текущему слову. Когда мы встречаем пробел, добавляем текущее слово в вектор `words` и сбрасываем `word`.

6. После завершения цикла, последнее слово будет иметь остаточное значение в `word`. Мы добавляем его в вектор `words` с помощью `words.push_back(word)`.

7. Затем мы определяем длину первого слова, обратившись к позиции `words[0]`. Затем мы инициализируем переменную `longer_words_count` для подсчета количества слов, длина которых превышает первое слово.

8. Мы также создаем вектор `longer_words`, в котором будут храниться все слова, длина которых превышает первое слово.

9. С помощью цикла мы проходимся по каждому слову в `words`, начиная с позиции 1 (первое слово уже было проверено). Если длина текущего слова превышает длину первого слова, мы увеличиваем `longer_words_count` на 1 и добавляем текущее слово в вектор `longer_words`.

10. Затем мы выводим результаты: длину первого слова, количество слов, длина которых превышает первое слово, и сами слова.

11. Наконец, возвращаем значение 0, чтобы указать успешное завершение программы.

Надеюсь, что этот код поможет вам выполнить задачу. Если у вас возникнут дополнительные вопросы, пожалуйста, не стесняйтесь задавать.