一个简单的数组结构体,但是不能输出小弟我预计的结果,求!

一个简单的数组结构体,但是不能输出我预计的结果,求高手指点!!
[size=16px][/size]运行环境:VC++6.0
#include<iostream.h>
struct customer
{
char name[60];
char address1[60];
char address2[60];
char city[60];
char state[3];
unsigned zip;
};

int main()
{
struct customer aCustomer;
aCustomer.name[0]='zyp';
aCustomer.address1[0]='Hn';
aCustomer.address2[0]='Yy';
aCustomer.city[0]='Tj';
aCustomer.zip=413403;

cout<<aCustomer.name[0]<<endl;
cout<<aCustomer.address1[0]<<endl;
cout<<aCustomer.address2[0]<<endl;
cout<<aCustomer.city[0]<<endl;
cout<<aCustomer.zip<<endl;

return(0);
}
我希望的输出结果是:
zyp
Hn
Yy
Tj
413403
但是实际输出是:
p
n
y
j
413403

问题出在哪里呢? 在线等答案!!!

------解决方案--------------------
C/C++ code

#include <iostream>
#include <cstring>
using namespace std;
struct customer
{
    char name[60];
    char address1[60];
    char address2[60];
    char city[60];
    char state[3];
    unsigned zip;
};

int main()
{
    struct customer aCustomer;
    strcpy(aCustomer.name, "zyp");
    strcpy(aCustomer.address1, "Hn");
    strcpy(aCustomer.address2, "Yy");
    strcpy(aCustomer.city, "Tj");
    aCustomer.zip=413403;

    cout<<aCustomer.name<<endl;
    cout<<aCustomer.address1<<endl;
    cout<<aCustomer.address2<<endl;
    cout<<aCustomer.city<<endl;
    cout<<aCustomer.zip<<endl;
    system("pause");

    return(0);
}

------解决方案--------------------
aCustomer.name[0]='zyp';
 aCustomer.address1[0]='Hn';
 aCustomer.address2[0]='Yy';
 aCustomer.city[0]='Tj';
 
你这样只能给数组的第一位赋值,其他位还是空的或未知,肯定不行了,要给字符数组赋值,得用strcpy
还有申明结构体,要清0,如下:
customer aCustomer;
memset(&aCustomer, 0, sizeof(customer));