"Char" is just an 8 bit number. So, it's not

struct { char name; char street; var number;} data;

but something like

struct { char name[32]; char street[32]; var number;} data;

Of course, there are probably more bugs in your first attempt. The best way to find them is using the debugger and walking step by step through your code while observing the strings and values.