检查二维数组中的值是否等于“#”

时间:2016-02-21 12:00:31

标签: c++ arrays

我有一个由“。”填充的数组。或者是“#”,我需要一种方法来检查array[y+1][x]是否等于#,如果是,则执行某些操作并停止循环,否则增加y。首先我没有和&在lavirint之前它给了我一个错误,它无法比较指针和int,这让我困惑因为“#”不应该是int

问题是循环中的第一个条件永远不会发生,尽管它应该,并且循环在

时停止
y==n

也许我只是愚蠢而忽视了一些事情,但我真的很感激解决这个问题。

char lavirint[500][500];

for (int i = 1; i <= n; i++)
{
    for (int j = 1; j <= m; j++)
    {
        scanf("%c", &lavirint[i][j]);
    }
}
bool n_povecava = true;

...

while(n_povecava)
    {
        if(&lavirint[y+1][x] == "#" || y==n)
        {
            k--;
            m_povecava = true;
            n_povecava = false;
        }
        else
            y++;
    }

1 个答案:

答案 0 :(得分:3)

"#"const char[2]类型的字符串文字,并且会衰减为const char*

您需要'#'这是一个角色:

if (lavirint[y+1][x] == '#' || ... )