memorizzare un numero di telefono su eeprom

Premesso che non ho capito tutta la logica del programma...

  1. secondo me il problema sta nel lcd.setCursor(0, 1); prima di ogni lcd.print(key);
    se metti coordinate fisse lui stampa il carattere sempre nella stessa posizione. visto che usi un indice per la posizione dell'array prova ad usarlo anche per la posizione su lcd

  2. perché converti da char* a nomero e poi da numero a string?

PS: so che i puristi del codice mi insulteranno, però a parte una questione puramente "educativa" o estreme necessità di prestazioni, che necessità c'è di fare tutto quel casino per salvare e leggere su eeprom quando si possono usare le funzioni get() e put()?