Il motivo del problema era dovuto al fatto che sovrascrivevi il terminatore (nul) della stringa.

Se la stringa è lunga 10 caratteri devi prevederne uno in più per il terminatore.

Per la questione della riga

str[i][z]='1';

continuo a non seguirti. Non ci va.

Se il valore da convertire è 0, perché inserisci quel bit a 1 ?

E il ciclo while deve essere corretto.