我正在尝试检入维度为[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]点应该打印出来,它已经被拿走了,至少那是我想要的...
谢谢!
答案 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], ""))