Задача "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;
}