如果语句错误地读取字符串,则始终在第一个条件返回



我正在编写一个接受字符串变量的错误检查函数,我需要它是"Y"、"N"、"y"或"n"之一。我的问题是字符串变量总是设置为"y",表明无论变量接收什么输入,if 语句都不会通过第一个条件。如果有一个明显的错误,例如我在使用"||"运算符时,如果有人能让我知道,这将对我有很大帮助。

if (string == "y" || "Y") { //If 'yes'...
string = "y"; //Standardise input for later use
return 1; //Error check successfully passed
}
else if (string  == "n" || "N") { //If 'no'...
string = "n"; //Standardise input for later use
return 1; //Error check successfully passed
}
else { //If erroeneous input...
return 0; //Error check not passed
} 

string == "y" || "Y"不会做你认为它做的事情:它将string"y"进行比较,然后用"Y"或结果。因为"Y"' is non-zero, it always evaluates to真的'。

正确的代码是:

string == "y" || string == "Y"

您也可以将"string"转换为char "c",并使用tolower(c(函数,您可以在相同的条件下与"y"和"n"进行比较,因为两种情况下您的返回值相同。

还有提升::to_lower(数据(选项;

相关内容

  • 没有找到相关文章

最新更新