关于把一个二维数组赋值到一个一维数组,该怎么处理

关于把一个二维数组赋值到一个一维数组chara[3][20]{ xxx ,yyy ,zzz }charb[20]我想让b的内容为

关于把一个二维数组赋值到一个一维数组
char   a[3][20]   =   { "xxx ",   "yyy ",   "zzz "};
char   b[20];
我想让b的内容为 "yyy "
b=   a[1];   但这样提示错误
请问应该怎么赋值?

还有,用什么方法可以得到a的长度(=3)?

[解决办法]
用循环一个一个赋值,或用memcpy。
sizeof(a)/sizeof(a[0])
[解决办法]
struct T
{
char data[20];
};

T a[3] = {{ "xxx "}, { "yyy "}, { "zzz "}};

T b;
b = a[1];