c语言输入一个小写字母 将其变为大写,c语言输入一个数减32然后输出和输入小写字母变为大写字母有什么区别?...

匿名用户

1级

2019-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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值