Задача "VIP Проект"

Степан Джобсов недавно презентовал новый проект по застройке небольшого посёлка виллами VIP класса. Название проекта вводится с клавиатуры. Программисты что-то напутали, когда размещали информацию на сайте. В названии проекта сделайте все буквы заглавными и замените все "А" на "О" (русские).

Формат входных данных: Вводится строка – название проекта с ошибкой. У входной строки регистр букв может быть любым.

Формат выходных данных Выведите исправленное название проекта.

входные данные| выходные данные

БаланСИага | БОЛОНСИОГО

каламбия | КОЛОМБИЯ

Теперь в кратце объясню что я пробовал:

Изначально задача на питон и решается в одну строку, но мне нужно решить на плюсах. Посмотрел все способы перевести РУССКИЕ буквы из нижнего регистра в верхний и не один вариант не заработал. Нашёл только этот, но проверить я его не смог так как компилятор не выводит буквы(setlocale использовал, библиотек windows.h/stdafx.h нет).

Помогите пожалуйста с решением это задачи.

#include <vector>
#include <string>
#include <cstring>
#include <iostream>
#include <locale>
using namespace std;
int main()
{
    
    char *str1[100000];
    unsigned char o;
    int i = 0;
    while(cin>>o){
      str1[i]=o;
      i++
    }
    char *str=str1;
    
    vector <string> lc = { "а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "э", "ю", "я" };
    vector <string> uc = {"А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Э", "Ю", "Я"};
    
    for (string::size_type i = 0; str[i]!='\0' - 1; i++) {
        for (string::size_type u = 0; u <= uc.size() - 1; u++) {
            if (strcmp(str[i], uc[u])==0) {
                str.replace(i, 1 , lc[u]);

            }

        }

    }
    cout << str;
}

Ответы (0 шт):