有关C语言数组赋值的问题

在对数组进行赋值时,需要从外界进行赋值的情况,除了循环对数组内每个元素进行赋值之外,有没有其他方法可以一次性对数组内多个元素进行赋值

void print(char *arr,int sz) {
    for (int i = 0; i < sz; i++) {
        printf("%c ", *(arr + i));
    }
}
int main() {
    char arr[5] ;
    scanf("%c", &arr);
    int sz = sizeof(arr) / sizeof(arr[0]);
    print(arr, sz);
}

比如我这种代码只能对数组内第一个元素进行赋值

有没有哪种方法可以一次输入对多个元素进行赋值?

char arr[50] ;
scanf("%s", arr);
可以一次性输入串字符,不含空格
如果需要一次性输入一行字符串,可以用fgets(arr);

如果已经在内存中可以memcpy()
如果你在意的是 " 从外界 “, 可以从文件读取,从网络获取