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.