Вопрос про конструктор строк
string h;
h = 's' + "ss";// справа строка?
cout << endl << h;// выводит странный символ
string h1('s'+"ss");// конструктор есть
Вопрос: какой тип в итоге получается если 's'= char, "ss"= const char[3], который при сложении скорее всего( я не уверена) преобразуется в const char*
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Если неохота пользоваться отладчиком etc, делаем так:
string h;
h = ' ' + "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
cout << endl << h;
И видим, что вывод идет GHIJKLMNOPQRSTUVWXYZ, т.е. пропущены 32 символа строки. Наверное, то, что ASCII-код пробела — 0x20 (32) — не простое совпадение? :)
Так что у вас просто получается строка далеко за пределами выделенной памяти, т.е. UB. На что там наткнется указатель, кто знает...