ok,

s[i] = c;

o

s[i] += c;

funzionano, quello che non va (e vorrei fare) e' una costruzione composta tipo:

s[i] = "stringa" + c1 + "stringa2" + c2;

se lo faccio i puntatori vanno dove vogliono, prova con il tuo codice e dimmi..