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

问题描述

我想解析 char 数组中的 intchar 并在代码中使用它们。例如,char 数组是 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;

解决方法

char 文字由单引号 (') 而非双引号 (") 表示,因此您应该检查 piece[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...