Программа не заменяет русские символы
Задание: Замените все заглавные буквы на «-», а строчные на «*»
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <string>
#include <clocale>
#include <iomanip>
#include <cwctype>
#include <stdlib.h>
#include <locale.h>
#include <windows.h>
using namespace std;
#if _WIN32 || _WIN64
#include <windows.h>
#include <fcntl.h>
#include <io.h>
#endif
void init_locale()
{
#if _WIN32 || _WIN64
setlocale(LC_ALL, ".1200");
(void)_setmode(_fileno(stdout), _O_U16TEXT);
(void)_setmode(_fileno(stdin), _O_U16TEXT);
#else
locale::global(locale(""));
wcout.imbue(locale());
//wcin.imbue( locale() );
#endif
}
int main()
{
init_locale();
wstring str;
getline(wcin, str);
size_t n = str.size();
for (size_t i = 0; i < n; ++i)
{
if (str[i] >= 65 && str[i] <= 90) str[i] = '-'; //A-Z
if (str[i] >= 97 && str[i] <= 122) str[i] = '*'; //a-z
if (str[i] >= 128 && str[i] <= 159) str[i] = '-'; //А-Я
if (str[i] == 240) str[i] = '-'; //Ё
if (str[i] == 241) str[i] = '*'; //ё
if (str[i] >= 160 && str[i] <= 175) str[i] = '*'; //а-п
if (str[i] >= 224 && str[i] <= 239) str[i] = '*'; //р-я
}
wcout << L"Результат:";
wcout << str;
return 0;
}