Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №3012881
А
Аноним
25 марта 2025 07:57 · публичный вопрос
А
Аноним

В строке, введенной пользователем посчитать: количество слов; сколько раз встречается слово "goe"; поменять местами первое и последнее слово в этой строке. код программы на языке…

Запрос пользователя

В строке, введенной пользователем посчитать: количество слов; сколько раз встречается слово "goe"; поменять местами первое и последнее слово в этой строке. код программы на языке С++

Ответ нейросети
25 марта 2025 07:57

Для решения данной задачи на языке C++, давайте шаг за шагом разберем поставленные задачи.

Шаг 1: Подсчет количества слов

Количество слов в строке можно подсчитать, сначала разбив строку на отдельные слова. В C++ мы можем использовать стандартные функции для работы со строками и потоками.

Шаг 2: Подсчет вхождений слова "goe"

После разделения строки на слова, мы можем пройтись по полученным словам и посчитать, сколько раз встречается слово "goe".

Шаг 3: Поменять местами первое и последнее слово

Для этого нам нужно сохранить первое и последнее слово и поменять их местами.

Полный код программы

Вот как может выглядеть программа на C++:

#include <iostream>
#include <sstream>
#include <vector>
#include <string>

int main() {
    std::string input;
    std::cout << "Введите строку: ";
    std::getline(std::cin, input);

    std::istringstream stream(input);
    std::string word;
    std::vector<std::string> words;
    
    // Шаг 1: Подсчет количества слов и загрузка слов в вектор
    while (stream >> word) {
        words.push_back(word);
    }

    // Подсчет количества слов
    int wordCount = words.size();
    std::cout << "Количество слов: " << wordCount << std::endl;

    // Шаг 2: Подсчет вхождений слова "goe"
    int countGoe = 0;
    for (const auto& w : words) {
        if (w == "goe") {
            countGoe++;
        }
    }
    std::cout << "Количество вхождений слова 'goe': " << countGoe << std::endl;

    // Шаг 3: Поменять местами первое и последнее слово
    if (wordCount > 1) {
        std::swap(words.front(), words.back()); // Меняем местами
    }

    // Выводим измененную строку
    std::cout << "Измененная строка: ";
    for (const auto& w : words) {
        std::cout << w << " ";
    }
    std::cout << std::endl;

    return 0;
}

Объяснение работы программы

  1. Ввод строки: Программа запрашивает строку у пользователя и считывает её.

  2. Разделение строки на слова: Используется std::istringstream для потока из строки, что позволяет удобно извлекать слова.

  3. Подсчет слов: Все слова помещаются в вектор words, чтобы мы могли позже с ними работать, и подсчитывается количество слов.

  4. Подсчет вхождений: Программа проходит через все слова в векторе и считает количество вхождений слова "goe".

  5. Замена слов: Если в строке больше одного слова, первое и последнее слово меняются местами с помощью функции std::swap.

  6. Вывод результата: Выводится количество слов, количество вхождений "goe", а также измененная строка.

Заключение

Эта программа демонстрирует основные концепции работы со строками и векторами в C++, а также умение работать с потоками для обработки текстовой информации. Вам следует протестировать программу с разными входными данными, чтобы поработать над её пониманием и возможными улучшениями.