C/C++

Задача через символьные переменные и массивы. функции string

Дана строка:
«Запись исходного кода программы на С++»
Надо:
1.Организовать ввод строки
2.Подсчитать кол-во слов и вывести на печать.
3.Удалить слова «Запись» и «исходного»
4.Если первая буква в предложении прописная, изменить её на заглавную.
5.Удалить букву «а», из слова «кода».
6.Организовать вывод строки.
RO
Rauan Okassov
140
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int main()
{
string input; // Организовать ввод строки

cout << "Enter the input string: ";
getline(cin, input);

int count = 0; // Переменная для подсчета количества слов

// Подсчитать количество слов
for (int i = 0; i < input.length(); i++)
{
if (input[i] == ' ')
{
count++;
}
}
count++; // Учесть, что количество слов равно количеству пробелов + 1

cout << "The number of words in the input string is: " << count << endl;

// Удалить слова «Запись» и «исходного»
input.erase(input.find("Запись"), 6); // Удалить слово «Запись»
input.erase(input.find("исходного"), 8); // Удалить слово «исходного»

// Если первая буква в предложении прописная, изменить её на заглавную
if (islower(input[0])) // Проверить, является ли первая буква в предложении прописной
{
input[0] = toupper(input[0]); // Изменить первую букву в предложении на заглавную
}

// Удалить букву «а», из слова «кода»
input.erase(input.find("кода"), 4
Роман Фильченков
Роман Фильченков
713
Лучший ответ
 #include  
#include
#include
#include
#include

using namespace std;

string read_line(const char* msg) {
cout > word) words.push_back(word);
return words;
}

string join(const vector& words, char delim = ' ') {
string line;
for (const auto& word : words) line += word + delim;
line.pop_back();
return line;
}

size_t count_words(const string& line) {
return split(line).size();
}

void erase_word(string& line, const string& word) {
auto words = split(line);
auto pos = find(words.begin(), words.end(), word);
if (pos != words.end()) words.erase(pos);
line = join(words);
}

void erase_words(string& line, const initializer_list& lst) {
for (const auto& word : lst) erase_word(line, word);
}

void first_capitalize(string& line) {
if (line.front() > 'Я') line.front() -= 32;
}

void write_line(const string& line) {
cout