「Via Leopardi 38」のようなアドレスの文字列をファイルに書き込む必要があります。null 以外で終了する文字列に関連する問題がないため、ループと char by char 印刷が最適なシステムだと思います。問題は、ループがヌル文字 (「Via」と「Leopardi」の間のスペース) に到達すると、ループが終了し、「Via」のみが書き込まれることです。使用できるループに別のテスト条件はありますか?
FILE *fo = open(filename,"w");
for (j=0;isalnum(phonebook[i].addr[j])!=0;j++) {
fprintf(fo,"%c",phonebook[i].addr[j]);
}