原文链接:http://www.juzicode.com/cpp-error-vs2015-compare-char-condition-warning-c4047/
错误提示:
比较字符的条件语句提示:warning C4047: “<”:“int”与“char [2]”的间接级别不同,能编译通过,但是在运行后比较结果不正确。
#include "stdio.h"
//VX:桔子code; juzicode.com
int main(void)
{
char ch;
printf("请输入字符:");
scanf(" %c", &ch);
if (ch<"A" || ch>"Z") {
printf("输入的不是大写字符\n");
}
return 0;
}
输入大写字母X,却提示不是大写字母:
错误原因:
1、定义的ch为char字符型变量,但是在if语句里面,ch是和包含了单个字符A和单个字符Z的字符串做比较,所以编译有告警,运行结果不正确。
解决方法:
1、修改比较语句,使用单引号包含的字符A和Z:
#include "stdio.h"
//VX:桔子code; juzicode.com
int main(void)
{
char ch;
printf("请输入字符:");
scanf(" %c", &ch);
//if (ch<"A" || ch>"Z") {
if (ch<'A' || ch>'Z') {
printf("输入的不是大写字符\n");
}
return 0;
}
如果本文还没有完全解决你的疑惑,你也可以在微信公众号“桔子code”后台给我留言,欢迎一起探讨交流。