繁体   English   中英

如何在if语句中放置一个二维字符串数组?

[英]how to put a 2d string array in 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 =='错误

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

因此,在您的行中:

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

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

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

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

首先声明一个字符串变量并分配“ X”,例如。 string s="X"; 之后,将s与每个索引进行比较。 if(M[i][j]==s)

码:

int main(){
int n;
    //here
    string s="X";
    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];
         //here
         if(M[i][j]==s) 
           k++;
       }
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM