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行"中的错误,它表示"不匹配'运算符=='错误
如果你来自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数组.