为什么我不能将 UserInput[i]
与 "*"
进行比较?编译器说“ISO c++ 禁止比较指针和整数”。整数在哪里?我在那一行看到的唯一一个是 i
,它用于定位特定字符。
#include <iostream>
#include <fstream>
#include <string.h>
using namespace std;
int main(){
char UserInput[4] = "2*3";
for (int i=0; i< strlen(UserInput); i++)
{
if(UserInput[i] == "*")
{
cout<<"There is multiplication Involved \n";
}
}
return 0;
}
最佳答案
Where is the integer?
您的条件表达式是 UserInput[i] == "*"
。
在表达式中 UserInput[i]
是 char
类型。在许多二进制操作中,char
在操作执行之前被提升为 int
。就编译器而言,它正在将 int
与 "*"
进行比较,后者的类型为 const char[2]
但衰减指向表达式中的指针。
您需要做的是将char
与字符常量'*'
进行比较。使用
if(UserInput[i] == '*') {
关于c++ - 为什么我不能将 char 与 "*"进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45853169/