Написал программку для расставления букв в алфавитном порядке в любом слове. Поставил 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
и ее использование тут
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я создал три класса, в каждом по приватному атрибуту, и с помощью дружественной функции использовал их значенияНо функция дружественна лишь...