Если у тебя кодировка UTF-8, то там 1 русская буква занимает 2 байта, а 1 английская -- 1 байт. А в char помещается 1 байт.
Получается, что ты присваиваешь половину буквы и вылазит ерунда.
Можно так: #include
using namespace std;
int main()
{
char r[3] {"п"};
cout