匿名用户
1级
-03-19 回答
在 C 语言中区分字母的大小写,利用 ASCII 码中大写字母和小写字母之间的转换关系(差值为 32),可以将小写字母转换为大写字母。编写程序实现,从键盘上输入一个小写字母,按回车键,程序将该小写字母转换为大写字母,并输出其 ASCII 值。
算法思想
由于大写字母与小写字母之间的差值为 32,因此小写字母转换为大写字母的方法就是将小写字母的 ASCII 码值减去 32,便可得到与之对应的大写字母。
利用 getchar 函数从键盘上输入一个小写字母,并将其赋给一个字符变量 a;然后将 a—32 的值赋给字符变量 b;最后进行输出,输出时先输出字母,再将字母以整数形式输出。其具体步骤如下:
① 定义两个字符变量 a、b;
② a=get char();
③ b=a—32;
④ 打印输出。
程序代码
#include
int main()
{
char a,b;
printf("输入一个小写字母:\n");
a=getchar();
b=a-32;
printf("转换后的字母为:%c,%d\n",b,b);
return 0;
}
调试运行结果
输入小写字母 c 时,转换后的大写字母及所对应的 ASCII 值如下所示:
输入一个小写字母:
c
转换后的字母为:C,67
输入小写字母 m 时,转换后的大写字母及所对应的 ASCII 值如下所示:
输入一个小写字母:
m
转换后的字母为:M,77
总结
① 实例内容要求对 ASCII 码有所了解。知道小写字母和大写字母之间的差值为 32。
② getchar 函数的功能是从键盘上输入一个字符。其一般形式为“getchar()”。通常把输入的字符赋予一个字符变量,构成赋值语句,如:char c;或c=getchar();
追问:
那样的话输入数a输出a-32的编码是什么?
追答:
不知道
追答:
我只是复印
追答:
有网友碰到过这样的C语言中 为什么c2=c1-32;输入小写字母a 就会输出大写字母B呢,问题详细内容为:C语言中 为什么c2=c1-32;输入小写字母a 就会输出大写字母B呢,我搜你通过互联网收集了相关的一些解决方案,希望对有过相同或者相似问题的网友提供帮助,具体如下:
解决方案1:
在C语言中,字符存储的本质是ASCII码值。
在ASCII码表中,大写字母和小写字母,都是按照字母顺序连续存储的。
其中:
大写字母'A'为0x41,即10进制的65;
大写字母'Z'为0x5A,即10进制的90;
小写字母'a'为0x61,即10进制的97;
小写字母'z'为0x7A,即10进制的122。
从以上可以看出,大写字母占了ASCII码的[65,90]区域,小写字母占了[97,122]区域。
对于相同的字母,大小写差值为32.
所以,c2=c1-32,在c1为小写字母情况下,c2就是对应的大写字母。
解决方案2:
帮你写一个字符转换时
如果它是一个字符串,那么请询问。然后帮你。
#包括中
无效的主要(){
所以char a;
A =的getchar();
若(a> ='A'&& A <='Z')
A + = 32;
否则,如果(A> ='A'&& A <='Z')
A级= 32;
的putchar(一);
的getch();
}本回答被网友采纳
解决方案3:
这是ASCALL 应用
c语言中每一个字符都有对应的ASCALL
A ->65
B ->66
a ->97
b ->98
还有你确定输出的是B不是A?
解决方案4:
大写和小写字母的ASCII码值相差32
追答:
这个就是你的问题最佳答法
追答:
8888888
c语言输入一个小写字母 将其变为大写 c语言输入一个数减32然后输出和输入小写字母变为大写字母有什么区别?...