c++二维字符数组怎么部分赋值?

假设定义一个二维数组
char str[5][5]={}
memset(str,'1', sizeof(str));
那么现在的str是
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
假使我在控制台输入(回车换行,空格区分不同元素)
a b c
b d e f
h j
怎么使str变成
a b c * *
b d e f *
h j * * *
* * * * *
* * * * *

写一个函数
void mystrcpy(char * dest, char * src)
{
for (int i = 0; i < strlen(src); i++)
dest[i] = src[i];
}
和标准的strcpy不同,它不拷贝结束的\0
这样你就可以用
scanf("%s", &s);
mystrcpy(str[i], s);