如何检查矩阵中是否有元素?

时间:2019-01-18 19:26:49

标签: c arrays if-statement matrix

我正在尝试检入维度为[10] [10]的矩阵,哪些位置可用于在其中存储数据(字符串),哪些位置已被占用。

代码基本上遍历整个矩阵并检查每个点。

我尝试使用strlen!= NULL,但所有内容都显示该现货是免费的。

char parque[10][10];

for(int i = 0; i < 10; i++) {
    for(int j = 0; j < 10; j++) {
        parque[i][j] = "";
    }
}

parque[5][5]="f47ac10b-58cb-4372-a567-0e02b2c3d499,ANR";

for(int i = 0; i < 10; i++) {
    for(int j = 0; j < 10; j++) {
        if(parque[i][j] != "") {
            printf("The Spot [%d][%d] is taken",i,j);
        } else {
            printf("The Spot [%d][%d] is free",i,j);
        }
    }
}

基本上[5] [5]点应该打印出来,它已经被拿走了,至少那是我想要的...

谢谢!

2 个答案:

答案 0 :(得分:0)

您的声明

char parque[10][10];

声明char的二维数组。如果使用严格的编译器编译代码,则会出现错误:

error: assignment makes integer from pointer without a cast [-Wint-conversion]
             parque[i][j] = "";
                          ^

您的意思是创建指向const char的指针数组,如下所示:

const char* parque[10][10];

然后您的程序会说The Spot [5][5] is taken

答案 1 :(得分:-1)

您不能使用!=。您需要使用strcmp。而且,当然,您需要在 迭代之前初始化数组内容,并使用其值与""字符串进行比较。

这种情况:

if(parque[i][j] != "")

将成为:

if (strcmp(parque[i][j], ""))