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

时间:2019-02-14 11:05:02

标签: c++ arrays string if-statement

在if语句中比较字符串2d数组和'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;
   }

第14行中的错误“ if行”,并显示“与'operator =='错误不匹配

2 个答案:

答案 0 :(得分:6)

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

因此在您的行中:

if(M[i][j]=='X')

您需要使用双引号""将M中的元素与字符串进行比较:

if(M[i][j] == "X")

或者,如果您仅在M的每个单元格中存储单个字符,则该二维数组可能是char的二维数组。

答案 1 :(得分:-1)

首先声明一个字符串变量并分配“ X” 例如。 variable = 'VERY_LONG_STRING' if len('VERY_LONG_STRING') > 1000 else "TINY_STRING" 在此之后将s与每个索引进行比较 例如。 string s="X";

代码:

if(M[i][j]==s)