大佬救命
str -=32 为啥可以把小写字母转化为大写字母虽然我知道和ascii表有关,但我不懂-=是什么意思 本帖最后由 jackz007 于 2022-10-2 10:44 编辑
str[ i ] -=32 就是 str[ i ] = str[ i ] - 32,同一个英文字母的大写字母比小写字母小 32,这个表达式是在把一个小写字母转换为大写字母。 小写字母的ascii码总是比大写字母的大32
比如,a的ascii码是97,A的ascii码是65,那么,'a' - 32 = 97 - 32 = 65 = 'A'
ascii码对照表 本帖最后由 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
c 是支持++-- 操作符的
其他语言大都可以把x=x+1 简写为x+=1
页:
[1]