Arrays C如何解析字符数组中的int和char?

Arrays C如何解析字符数组中的int和char?,arrays,c,char,compiler-warnings,logical-and,Arrays,C,Char,Compiler Warnings,Logical And,我想在我的char数组中解析char和int,并在代码中使用它们。例如,字符数组是a3。我得到一个警告:“指针和整数之间的比较。” 我怎样才能解决这个问题 bool isValid(char piece[1]){ if((piece[0] != "a") || (piece[0] != "b") || (piece[0] != "c") || (piece[0] != "d") || (piece[0] !=

我想在我的
char
数组中解析
char
int
,并在代码中使用它们。例如,字符数组是a3。我得到一个警告:“指针和整数之间的比较。” 我怎样才能解决这个问题

bool isValid(char piece[1]){
    if((piece[0] != "a") || (piece[0] != "b") || (piece[0] != "c") || (piece[0] != "d") || (piece[0] != "e") || (piece[0] != "f") || (piece[0] != "g") || (piece[1] <= 0) || (piece[1] > 7))
        return false;
    else
        return true;
bool有效(字符块[1]){
如果((件号[0]!=“a”)|(件号[0]!=“b”)|(件号[0]!=“c”)|(件号[0]!=“d”)|(件号[0]!=“e”)|(件号[0]!=“f”)|(件号[0]!=“g”)|(件号[1]7))
返回false;
其他的
返回true;

字符
文字由单引号(
)而不是双引号(
)表示,因此您应该检查
片段[0]!='a'
等,以了解类似表达式中的初学者

(piece[0] != "a")
左操作数的类型为
char
,而右操作数的类型为
char*
,因为
“a”
是一个字符串文字。您似乎要比较两个字符。因此,使用如下字符常量代替字符串文字

(piece[0] != 'a')
其次,if语句中的条件

if((piece[0] != 'a') || (piece[0] != 'b') || and so on...
不正确。您需要使用逻辑AND运算符,而不是类似逻辑OR运算符的运算符

if((piece[0] != 'a') && (piece[0] != 'b') && and so on...

使用单引号,这样您就有了一个字符,而不是可以与int进行比较的char*,所以将
bool-isValid(char-piece[1])
更改为
bool-isValid(char-piece)
然后单引号
piece[0]!='a'
等等。@Hilal Turpullu函数检查什么?@Vladfrommoskow检查电路板的列/行是否有输入。电路板有第1列到第7列和第a行到第g行。在不同情况下,在if语句中使用和(&i)。&&不能给出我想要的。但是(第[0]条!='a')解决了我的问题。谢谢!谢谢!成功了