書いてる本人らは分かってるだろうけど、
初心者スレなので、初心者のために説明書いておくてst

>>215は問題ない実装。
ただし、ss.str()でインスタンスが作られて、
string strでもう一つインスタンスが作られるので、
ほんの僅かの無駄がある。でも通常気にすることは無いレベル。

>>216は、その僅かな無駄も無くそうとしていて、
const参照による一時オブジェクトの束縛を利用しようとした。
しかし、replaceの戻り値が一時オブジェクトでないので、
束縛出来ず消えてしまい、&strは不正な領域を指してしまう。

>>233は関数から戻るまで、その引数が生存することを利用してる。
str()で作られたインスタンスが、replaceで変更され、
「<<」で出力された後に消える。一番無駄の無い実装。

>>239
そういう場合、普通はstr()などせずにストリームアルゴリズムで扱う。