Написал программку для расставления букв в алфавитном порядке в любом слове. Поставил setlocale(0, "rus")
. После обработки выдаёт непонятные символы. Если на латинице то всё нормально. Что делать, подскажите пожалуйста?
Вот код:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void main()
{
setlocale(0, "rus");
string a, b;
getline(cin, a);
getline(cin, b);
// если в строке `a` не нашли символ, который нет в строке `b`
if (a.find_first_not_of(b) == string::npos) {
for (size_t i = 0; i < b.length(); ++i)
//проверяеешь является ли символ буквой
if (isalpha(b[i]))
b.erase(i--, 1);
cout << a << endl << b;
}
else { //сортируешь в алфавитном порядке
sort(a.begin(), a.end());
cout << a;
}
}
Подключите windows.h
и напишите две строки:
setConsoleCP(1251);
setConsoleOutputCP(1251);
Это самый простой способ.
Больше информации про setlocale
и ее использование тут
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я создал три класса, в каждом по приватному атрибуту, и с помощью дружественной функции использовал их значенияНо функция дружественна лишь...