鱼C论坛

 找回密码
 立即注册
查看: 3646|回复: 4

[已解决]大佬救命

[复制链接]
发表于 2022-10-2 10:36:05 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
str[i] -=32 为啥可以把小写字母转化为大写字母
虽然我知道和ascii表有关,但我不懂-=是什么意思
最佳答案
2022-10-2 10:43:46
本帖最后由 Twilight6 于 2022-10-2 10:46 编辑


举个例子:

i -= 1 就是 i  =  i - 1,也就是将扣除 1 后的值重新赋值给 i

所以这里 str[ i ] -=32 就是  str[ i ] =  str[ i ] - 32 ,即将  str 中第 i 个元素 扣除 32 赋值回到 str 的第 i 索引元素值

而为什么 -32 就能将小写字母转换为大写,是因为 大小写字母的 ASCII 码值是按照字母顺序为正序且连续

而且大写字母的 ASCII 和 小写字母的 ASCII 码值正好都只差 32,所以所有大小写字母的 ASCII 码值也都差 32

实在不理解可以看看 ASCII 表:https://www.runoob.com/w3cnote/ascii.html

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-10-2 10:42:01 | 显示全部楼层
本帖最后由 jackz007 于 2022-10-2 10:44 编辑

str[ i ] -=32 就是 str[ i ] = str[ i ] - 32,同一个英文字母的大写字母比小写字母小 32,这个表达式是在把一个小写字母转换为大写字母。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-2 10:43:35 | 显示全部楼层
小写字母的ascii码总是比大写字母的大32
比如,a的ascii码是97,A的ascii码是65,那么,'a' - 32 = 97 - 32 = 65 = 'A'
ascii码对照表
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-2 10:43:46 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2022-10-2 10:46 编辑


举个例子:

i -= 1 就是 i  =  i - 1,也就是将扣除 1 后的值重新赋值给 i

所以这里 str[ i ] -=32 就是  str[ i ] =  str[ i ] - 32 ,即将  str 中第 i 个元素 扣除 32 赋值回到 str 的第 i 索引元素值

而为什么 -32 就能将小写字母转换为大写,是因为 大小写字母的 ASCII 码值是按照字母顺序为正序且连续

而且大写字母的 ASCII 和 小写字母的 ASCII 码值正好都只差 32,所以所有大小写字母的 ASCII 码值也都差 32

实在不理解可以看看 ASCII 表:https://www.runoob.com/w3cnote/ascii.html

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-2 10:44:07 | 显示全部楼层
c 是支持++  -- 操作符的
其他语言大都可以把x=x+1   简写为x+=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-25 21:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表