大小写转换和ASCII码值

什么是ASCII码 ?      

        ASCII码:(American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符。相信只要和程序打交道的人,都会知道ASCII码,里面有128个字符的数字值,我们可以通过数字来表示该字符。

为什么产生ASCII码?

        在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a、b、c、d这样的52个字母(包括大写)以及0、1等数字还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

                                                                      ASCII码表

怎么使用ASCII码?

        我们可以写一个程序来输出一个字符的ASCII码:

#include<stdio.h>
int main()
{
	char ch;
	scanf("%c", &ch);//输入的是字符
	printf("%d", ch);//输出格式是整型

	return 0;
}

        我们虽然输入了一个字符,但是我们用整型的格式输出它,编译器完全不会报错,程序十分合理昂,但现在打印的是什么?——正是这个字符的ASCII码值。

        如图所示,c的(小写)ASCII码值就是99,字符也可以看ASCII码值:

        $符号的ASCII码值就是36了,你会好奇:汉字可以吗?很显然,汉字是万万不可以的,原因在个人看来有两点:1.英文字母只有26个,但常用汉字就有几万个,根本不可能用数字来表示,来为汉字编码;2.ASCII码是美国发明创造的,并不需要为汉字赋值。而汉字在电脑中又是怎么储存的呢?这个就需要另外去查找资料了。(本人才疏学浅,只初略的了解了一下点阵图和矢量表示汉字,大家感兴趣可以广泛查阅一下其他的专业的权威的资料。)

        那既然已经有了这么方便的ASCII码了,我们在程序中的字符输入输出就变得无比方便了,我们在享受它所带来的便利的同时,也写个小小的程序来检验一下ASCII码:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
	int ch = 0;//创建ch变量来让用户输入字母
	//EOF -- end of file
	while ((ch = getchar()) != EOF)//一直循环,直到EOF    
	{
		//putchar(ch + 32);//ASCII码值-32则是小写转大写
		//printf("\n");
		printf("%c\n", ch + 32);//ASCII码值+32则是大写转小写
		getchar();//读取\n
	}

	return 0;
}

        我们需要知道,在ASCII码中,A-Z的值是65-90;a-z的值是97-122(大写小写之间还有一些符号,所以说并没有连贯),我们只需要将ASCII码+32就可以使大写字母转为小写字母;而将ASCII码-32就可以将小写字母转为大写字母了,然后对其输出,就可以实现大小写的转换了。

ASCII码的不足之处

        像上文所说,ASCII码不能表示汉字,实际上,不仅不能表示汉字,它只能表示128个字符,所以说很多国家的字母(字符)都是不能用ASCII码来很好的表示的,ASCII码有一定的局限性,但即使如此,不能否认的是,直至今日,ASCII码还是对人类起到的重要的作用。也希望未来能有人类群星闪耀,创造一个更加兼容,全面的“ASCII码”。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值