gpt4 book ai didi

c++ - 为什么我不能将 char 与 "*"进行比较?

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:10 25 4
gpt4 key购买 nike

为什么我不能将 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com