Это причина ошибки компиляции:
test2[1]="bad";
test2[1]
относится к типу char
, а "bad"
относится к типу const char*
: это присвоение недопустимо.
Используйте std::string::replace()
, чтобы изменить q
на "bad"
:
test2.replace(i, 1, "bad");
Поскольку вам также требуется только заменить первое вхождение 'q'
(я думаю, это основано на логике в цикле for
), вы можете заменить цикл for
на:
size_t q_idx = test2.find('q');
if (std::string::npos != q_idx)
{
test2.replace(q_idx, 1, "bad");
output2.append(test2);
}
EDIT:
Для замены всего слова:
test2 = "bad";
Обратите внимание, что output2
будет содержать слова, если они содержат 'q'
с текущей логикой. Это будет один из способов исправить это:
output2.append(std::string::npos != test2.find('q') ? "bad" : test2);