c语言中, 英文字母的大小写的转换,请给我详细讲解一下,(以下下面这个为例,这个为何要先减去'a'

发布网友 发布时间:2022-04-22 19:39

我来回答

4个回答

热心网友 时间:2023-11-17 07:10

虽然我不是很明白你具体想说什么,但是我可以给你解释一下C语言中大小写转换主要就是利用ASCII代码中,大小写相差32的原理,其程序为:
#include<stdio.h>
int main()
{
char c1,c2; // 定义两个字符c1,c2
c1=getchar(); //从键盘输入一个大写字母,放在c1
printf("%c,%d\n",c1,c1);//输出 你输入的那个大写字母 以及它的ASCII
c2=c1+32; //将大写的转换成小写的
printf("%c,%d\n",c2,c2);输出小写字母
}
你明白没有呢?没有的话可以继续问我哈,很高兴为你解答哦

热心网友 时间:2023-11-17 07:11

你的说法是对的。ASCII码表中大小写字母的值确实相差了32,但这是在你十分清楚两者之间的差值的前提下才能写出来,而用 c = c - 'a' + 'A' 则可以不用记下这个差值就可以实现转换了。
我觉得你没有必要去纠结这个问题,这里更多只是说明一种方法而已。所谓条条大道通罗马吧。编程没有一成不变的东西。

热心网友 时间:2023-11-17 07:11

你说的没错。
但是一般代码里会用'a'-'A'来表示大小写asc的差值,这种表达方式比较直观;另外,如果忘记具体的asc值,仍然可以用这种方式算出大小写asc的差值。追问先减后加只是为了正正式吗?

追答那倒不是,不管是先加后减还是先减后加都一样的。

热心网友 时间:2023-11-17 07:12

用c -= 32;当然是可以的,但是至少我写的时候都是c = c - 'a' + 'A' 这样的,因为懒得去记ASCII的值,这样写只需要记得大写字母在小写字母前面就行了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com