如何在if语句中放入一个2d字符串数组?

Roa*_*iem -1 c++ arrays string if-statement

我有问题比较字符串2d数组与if语句中的'X'

我正在尝试将我的数组中的每个单元格与'X'进行比较但是我在第14行中得到"不匹配'运算符=='错误,所以我想我有问题将数组放入此if语句中

    #include <iostream>

    using namespace std;

    int main()
    {
        int n;
        cin >> n;
        string M[n][n];
        int k=0;
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
               cin>>M[i][j];
               if(M[i][j]=='X')
                   k++;
           }
       }

         cout<<k<<endl;

         return 0;
   }
Run Code Online (Sandbox Code Playgroud)

第14行"if行"中的错误,它表示"不匹配'运算符=='错误

Mat*_*usz 6

如果你来自Python之类的另一种语言可能并不明显,但在C++中,使用""''文字类型之间存在显着差异.我们只''char类型使用(单引号).对于std :: string类型(和其他字符串)我们""用于比较 - 这也是你的情况.

因此,在你的行:

if(M[i][j]=='X')
Run Code Online (Sandbox Code Playgroud)

你需要使用双引号""来比较M中的元素和字符串:

if(M[i][j] == "X")
Run Code Online (Sandbox Code Playgroud)

或者,如果您只在M的每个单元格中存储单个字符,则可以是chars 的2D数组.

  • 我没有假设,但如果有人来自Python或类似的,我相信这可能在开始时并不明显,我错了吗? (3认同)