关于char* name与char name[20]的有关问题

关于char* name与char name[20]的问题
初学c++,有个简单问题向大家请教,如下:
class   A
{
public:
        char   name[20];
};

void   fun(A   a,char   *p)
{
a.name=p;//出错.想把p所指的内容放如数组中
}
void   main()
{
A   test;
char*   str= "nihao ";
fun(test,str);
}

问题是如何将char*   p所指的内容放入char   name[2]中.
谢谢!

------解决方案--------------------
strcpy(a.name, p);
------解决方案--------------------
a.name=p;//出错.想把p所指的内容放如数组中
=======================
strcpy(a.name, p);

另外LZ的void fun(A a,char *p)应该改为
void fun(A& a, const char *p)
------解决方案--------------------
strcpy
------解决方案--------------------
strcpy();
或者自己写一个函数,一个字符一个字符复制过去,不难
------解决方案--------------------
a.name=p;//出错.想把p所指的内容放如数组中
C不是VB,C的字符串是一个数组,拷贝时遵循数组的拷贝原则