final
имеет тип std::string
, которые не имеют нулевого завершения.
В вашем цикле for: for(int j=0;final[j]!='\0';j++)
вы проверяете конец строки, как если бы вы делали это в C (который является char*
- строкой с нулевым окончанием), но в C ++ вам следует перебирать строчные символы некоторые другие способы: использование итератора, подсчет размера строки или что-то в этом роде.
Быстрое решение этой проблемы (не знаю, есть ли другие) состоит в том, чтобы получить char*
представление final
: final.c_str()
с нулевым символом в конце и повторить его, как вы делаете.