char
типы в C ++ (как и в C) являются целочисленными типами. Они ведут себя как целостные типы. Точно так же, как когда вы пишете 5 + 3
в своем коде, вы ожидаете получить целое 8
как результат (а не строку "53"
), когда вы пишете c1 + c2
в своем коде выше, вы должны ожидать получить интегральный результат - арифметическая сумма c1
и c2
.
Если вы действительно хотите объединить два символа в строку, вы должны сделать это по-другому. Есть много способов сделать это. Например, вы можете сформировать строку в стиле C
char str[] = { c1, c2, `\0` };
, который будет неявно преобразован в std::string
на
return str;
Или вы можете построить std::string
сразу (что также можно сделать несколькими различными способами).