st.nombre[]="zhang";
Esto no parece funcionar. Un método de inicialización más simple es usar la función strcpy debajo del archivo de encabezado string.h: strcpy(st.name, "zhang");
El más estúpido solo puede hacerlo. st.name[0 ]='z'; st.name[1]='h'; st.name[2]='a' ... para que puedan inicializarse uno por uno.