检查数组位置X处的某些内容是否为char

时间:2016-11-09 23:10:33

标签: c++ c arrays

if (selecao > 0 && selecao < 5) {
 if (assentosP[selecao] == 'O') {
     printf("Test");

assentosPchar数组,其中包含DO个字母(默认为D

char assentosP[2][4] = {
    {'D', 'D', 'D', 'D'}, // [0][0], [0][1], [0][2]...
    {'D', 'D', 'D', 'D'} // [1][0], [1][1], [1][2]...
};

我需要知道的是让AssentosP找出数组位置selecao中的字符是D还是O的方法。

当我尝试时,它会给我一个错误

  

iso c ++禁止指针和整数c之间的比较

1 个答案:

答案 0 :(得分:1)

您定义了一个二维数组

char assentosP[2][4] = {
     {'D', 'D', 'D', 'D'}, // [0][0], [0][1], [0][2]...
     {'D', 'D', 'D', 'D'} // [1][0], [1][1], [1][2]...
     };

因此,表达式assentosP[selecao]具有类型char[4]。您可能无法将此类数组与字符(或整数提升后的整数)进行比较,如此

if (assentosP[selecao] == 'O') {

考虑到如果一个数组声明有4个元素,那么索引的有效范围是[0,3]。因此这句话

if (selecao > 0 && selecao < 5) {

看起来不正确。