str[i] 数字强制转int型

str[i] 数字强制转int型
X=(int)(str[i]-48);程序标注“将x转换成int型。”我不明白为啥减掉48,str是char型数组!
因为ASC码48就是’0’,也就是说’0’的值是48,而后依次是’1’到’9’。

这样正好是char型减去48就是它对应的int值

不过这样写不好理解,直接写成str[i]-‘0’就好。
如果str里面存放的是数字字符的话就是转成其数值类型
比如说str[i]是’1’,其实ascii码值为0x31,而’0’的ascii码是0x30,用str[i]-'0’就得到了1

c语言中单引号是什么意思
单引号一个数,代表一个字符,如果单引号内是数值,那输出的结果是ASCII码中对应的字符;
双引号一个字符或几个字符,代表是一个字符串

双引号里面的是字符串 而单引号里面的代表字符 朋友 你可以这样理解 只要是在双引号里面的不代表任何表达式的意义 假如 int a=10 cout<<“a”;
这是用 双引号 它在屏幕上就是 a 而 int a=10 cout<<a; 这个a就代表表达式a=10在屏幕上是10 而int a=10 cout<<‘a’;将会是65 因为用单引号里面的代表字符 而字符要用ASCII码 表示 你在书中查 多努力啊

posted @ 2022-11-21 18:54  TwcatL_tree  阅读(5)  评论(0编辑  收藏  举报