Вопрос от Анонимного юзера 14 мая 2025 18:45
В строке, введенной пользователем посчитать: количество слов; сколько раз встречается слово "goe"; поменять местами первое и последнее слово в этой строке. Язык программирования С++. Консоль. Windows.
Ответ нейросети
14 мая 2025 18:45
Конечно, я подготовлю для вас подробное решение задачи на языке C++ с пошагными объяснениями, чтобы вы могли понять каждую часть кода.
Задача:
Ваша программа должна:
- Ввести строку с консоли.
- Подсчитать:
- Общее количество слов.
- Сколько раз встречается слово "goe" (регистр учитываем, например, только "goe").
- Поменять местами первое и последнее слово в строке.
- Вывести результаты и изменённую строку.
Решение по шагам:
- Ввод строки
- Разделение строки на слова (используя
stringstream) - Подсчёт слов и количества "goe"
- Запоминание первого и последнего слова для обмена
- Обмен местами
- Вывод результатов
Полный код с объяснениями:
#include <iostream>
#include <sstream>
#include <vector>
using namespace std;
int main() {
// 1. Объявляем переменную для хранения строки
string line;
// 2. Ввод строки с консоли
cout << "Введите строку: ";
getline(cin, line);
// 3. Создаём поток для разбивки строки на слова
stringstream ss(line);
vector<string> words; // для хранения слов
string word;
int totalWords = 0; // общее количество слов
int countGoe = 0; // количество вхождений слова "goe"
// 4. Разделение строки и подсчёт
while (ss >> word) {
words.push_back(word);
totalWords++;
if (word == "goe") { // проверка слова
countGoe++;
}
}
// Проверка, что есть хотя бы одно слово для обмена
if (totalWords > 1) {
// 5. Меняем первое и последнее слово местами
swap(words[0], words[totalWords - 1]);
}
// 6. Вывод результатов
cout << "Общее количество слов: " << totalWords << endl;
cout << "Количество встреч слов " << "goe" << ": " << countGoe << endl;
// 7. Восстановим строку из слов
cout << "Изменённая строка: ";
for (size_t i = 0; i < words.size(); ++i) {
cout << words[i];
if (i != words.size() - 1) {
cout << " ";
}
}
cout << endl;
return 0;
}
Объяснение кода:
- Вы вводите строку через
getline(cin, line);. - Создаёте поток
stringstreamдля разбивки строки на слова. - Проходите по словам, считая их и одновременно проверяя, равно ли слово
"goe". - После получения всех слов, меняете местами первое и последнее слово с помощью
swap. - В конце выводите количество слов, количество встреч слова
"goe"и новую строку с изменённым порядком слов.
Если у вас есть дополнительные вопросы или нужны разъяснения по конкретной части — скажите!
Понравился ответ?
Задай свой вопрос
Напиши любую задачу или вопрос, а нейросеть её решит



