Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2021, 01:11   #1
MiniPig
Новичок
Джуниор
 
Регистрация: 31.10.2021
Сообщений: 1
Вопрос Программа не заменяет русские символы C++

Заменяет только англ символы почему то

Код:
#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;
}
MiniPig вне форума Ответить с цитированием
Старый 01.11.2021, 08:02   #2
kvitaliy
Участник клуба
 
Регистрация: 17.05.2011
Сообщений: 1,660
По умолчанию

Цитата:
Сообщение от MiniPig Посмотреть сообщение
Заменяет только англ символы почему то
Думаю дело в кодировке.
Прогоните в своей программе коды от 128 до 159 и посмотрите, каким буквам они соответствуют.
например
printf ("%c\n",128);

Потом проверьте маленькие буквы.
kvitaliy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста. Код заменяет русские буквы на английские, как сделать, чтобы и наоборот так же делал? КотикБегемотик C# (си шарп) 1 24.02.2021 12:20
drawString и русские символы Pasha_Sh Общие вопросы по Java, Java SE, Kotlin 0 07.09.2016 23:35
русские символы в консоли С++ svkpro Помощь студентам 12 03.12.2012 20:35
Русские буквы в \u символы J-Max Общие вопросы Delphi 4 01.07.2012 19:35
Русские символы Akord Общие вопросы C/C++ 0 26.09.2010 11:17