Необхідно написати програму на C++, яка:
str та три символи symv1, symv2 та symv3str усі символи symv1 на symv2 від початку рядка до останнього входження symv3symv3 у рядку немає, виводить повідомленняwstring) та wide-символи (wchar_t).
#include <iostream>
#include <string>
#include <clocale>
using namespace std;
int main() {
// Встановлюємо локаль для підтримки кирилиці
setlocale(LC_ALL, "");
wstring wstr;
wchar_t symv1, symv2, symv3;
// Введення даних
wcout << L"Введіть рядок: ";
getline(wcin, wstr);
wcout << L"Введіть символ symv1: ";
wcin >> symv1;
wcin.ignore(); // Ігноруємо залишковий символ нового рядка
wcout << L"Введіть символ symv2: ";
wcin >> symv2;
wcin.ignore();
wcout << L"Введіть символ symv3: ";
wcin >> symv3;
wcin.ignore();
// Знаходимо останнє входження symv3
size_t last_pos = wstr.find_last_of(symv3);
if (last_pos == wstring::npos) {
wcout << L"Символу " << symv3 << L" не знайдено у рядку." << endl;
return 0;
}
// Замінюємо symv1 на symv2 до останнього входження symv3
for (size_t i = 0; i <= last_pos; i++) {
if (wstr[i] == symv1) {
wstr[i] = symv2;
}
}
// Виводимо результат
wcout << L"Результат: " << wstr << endl;
return 0;
}
setlocale(LC_ALL, "") - встановлює локаль для підтримки кирилиціwstring - тип для рядків з широкими символами (підтримка Unicode)wchar_t - тип для широких символівwcin, wcout - аналоги cin/cout для широких символівfind_last_of() - знаходить останнє входження символуwstring::npos - спеціальне значення, що означає "не знайдено"wcin.ignore() після введення кожного символу, щоб уникнути проблем з буфером введення.
Введіть рядок: Привіт, це тестовий рядок
Введіть символ symv1: і
Введіть символ symv2: І
Введіть символ symv3: й
Результат: ПрИвІт, це тестовий рядок