Arrays 在字符数组中,如何将所有元素更改为相同的?

Arrays 在字符数组中,如何将所有元素更改为相同的?,arrays,c,Arrays,C,我有一个2D字符数组(3x3),我想将每个元素都更改为一个空格“” char array[3][3]; 如何使用数组的元素“坐标”进行此操作 无法添加标题您不需要使用坐标。可用于将所有char元素设置为相同的值 memset(array, ' ', sizeof(array)); (请注意,这不能用于多字节类型,如int,但设置为零等特殊情况除外)您的问题中不清楚是否要将数组的值用作字符串,在这种情况下: size_t rows = sizeof array / sizeof *array;

我有一个2D字符数组(3x3),我想将每个元素都更改为一个空格“”

char array[3][3];
如何使用数组的元素“坐标”进行此操作


无法添加标题

您不需要使用坐标。可用于将所有
char
元素设置为相同的值

memset(array, ' ', sizeof(array));

(请注意,这不能用于多字节类型,如
int
,但设置为零等特殊情况除外)

您的问题中不清楚是否要将
数组的值用作字符串,在这种情况下:

size_t rows = sizeof array / sizeof *array;
size_t cols = sizeof *array / sizeof **array;

for (size_t row = 0; row < rows; row++)
{
    size_t col = 0;

    for (; col < cols - 1; col++)
    {
        array[row][col] = ' ';
    }
    array[row][col] = '\0';
}
size\u t rows=sizeof数组/sizeof*数组;
size\u t cols=sizeof*数组/sizeof**数组;
对于(行大小=0;行<行;行++)
{
大小=0;
for(;col
如果要用空格填充整个数组,请执行以下操作:

size_t rows = sizeof array / sizeof *array;
size_t cols = sizeof *array / sizeof **array;

for (size_t row = 0; row < rows; row++)
{
    for (size_t col = 0; col < cols; col++)
    {
        array[row][col] = ' ';
    }
}
size\u t rows=sizeof数组/sizeof*数组;
size\u t cols=sizeof*数组/sizeof**数组;
对于(行大小=0;行<行;行++)
{
对于(大小\u t col=0;col

由于第二个代码段不以null终止数组的元素,因此它们不能用作字符串。

使用
memset()
将所有字节设置为相同的值。如果确实要使用数组的“坐标”,则需要两个嵌套的
for
循环,例如
for(int row=0;row我忘了提到我不能添加标题tho,它要求我使用memset添加#include thanky you,因为(size_t row=0;row