Программа не заменяет русские символы

Задание: Замените все заглавные буквы на «-», а строчные на «*»

#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;
}

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