You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++中char类型'1'与(char)1比较返回false的问题咨询

原因说明

  • 你代码中char ch = '1'里的'1'是字符常量,标准ASCII编码下它的底层存储数值为十进制的49,对应可显示的数字字符1。
  • 判断条件中的(char)1是将整数1强转为char类型,对应ASCII编码中编号为1的不可见控制字符(SOH,标题起始符),底层存储数值为十进制的1。

二者实际存储的数值完全不同,所以判断条件不成立,程序输出No。

正确写法

如果要判断ch存储的是否为数字字符1,直接匹配字符常量即可:

#include <iostream>
using namespace std;
int main(void) {
    char ch = '1';  
    if (ch == '1') {
        cout << "Yes";
    }
    else {
        cout << "No";
    }
    system("pause");
}

如果需要将字符转为对应整数做判断,可利用数字字符ASCII连续的特性处理:

if (ch - '0' == 1) {
    cout << "Yes";
}

内容的提问来源于stack exchange,提问作者Thắng Nguyễn Đình

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 09:15:04