Код выглядит нормально, за исключением одной маленькой детали:
Представьте, что у вас есть строка с "test = кое-что". Когда вы итерируете его, когда мне 3, вы обнаружите, что следующий символ равен «равно», поэтому вы вставляете в него пробел. На следующей итерации у меня будет 4, но вы только что добавили пробел, поэтому при i, равном 5, появляется тот же знак равенства. Таким образом, вы ставите другое место и так далее. Чтобы исправить это, вы можете попробовать:
std::string line = "test=something";
for (int i = 0; i < line.length(); i++)
{
if (line[i + 1] == '=')
{
i++;
line.insert(i, " ");
}
}