在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 =='错误不匹配
答案 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)