加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在c中比较char到Int

发布时间:2020-12-16 10:09:21 所属栏目:百科 来源:网络整理
导读:在c中,由于隐式类型转换,可以将int与char进行比较吗?还是我误解了这个概念? 例如,我可以吗 int x = 68;char y;std::cin y;//Assuming that the user inputs 'Z';if(x y) { cout "Your input is larger than x";} 或者我们是否需要先将其转换为int? 所以 i
在c中,由于隐式类型转换,可以将int与char进行比较吗?还是我误解了这个概念?

例如,我可以吗

int x = 68;
char y;
std::cin >> y;
//Assuming that the user inputs 'Z';
if(x < y) 
{
 cout << "Your input is larger than x";
}

或者我们是否需要先将其转换为int?

所以

if(x < static_cast<int>(y)) 
{
 cout << "Your input is larger than x";
}

解决方法

是的,您可以将int与某些char进行比较,就像您可以将int与某些short进行比较,但它可能被认为是不好的样式.我会编码

if (x < (int)y)

或者像你一样

if (x < static_cast<int>(y))

对于那种情况我觉得有点过于冗长……

顺便说一下,如果你打算使用不作为字符的字节,还要考虑来自< cstdint>的int8_t类型(etc …).

不要忘记在某些系统上,默认情况下会对char进行签名,而在其他系统上则为无符号(并且您可以显式使用unsigned char vs signed char).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读