字符和ASCll编码
在键盘上可以敲出各种字符,如:a,q,@,#等,这些符号都被称为字符,C语⾔中字符是⽤单引号 括起来的,如:'a','b','@'。 我们知道在计算机中所有的数据都是以⼆进制的形式存储的,那这些字符在内存中分别以什么样的⼆ 进制存储的呢?如果我们每个⼈⾃⼰给这些字符中的每个字符编⼀个⼆进制序列,这个叫做编码,为 了⽅便⼤家相互通信,不造成混乱,后来美国国家标准学会(ANSI)出台了⼀个标准 ASCII 编码,C语 ⾔中的字符就遵循了 ASCII 编码的⽅式。
参考:https://zh.cppreference.com/w/cpp/language/ascii
我们不需要记住所有的ASCII码表中的数字,使⽤时查看就可以,不过我们最好能掌握⼏组特殊的数 据:
• 字符A~Z的ASCII码值从65~90
• 字符a~z的ASCII码值从97~122
• 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32
• 数字字符0~9的ASCII码值从48~57
• 换⾏ \n 的ASCII值是:10
• 在这些字符中ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察
#include <stdio.h>
int main()
{
int i = 0;
for (i = 32; i <= 127; i++)//ASCII码值从0~31 这32个字符是不可打印字符,⽆法打印在屏幕上观察
{
printf("%c ", i);
if (i % 16 == 15)//这里的意义为每116个字符打成一行,这样看起来简洁美观
printf("\n");
}
return 0;
}
运行结果如上所示
代码实现大小写转化
#include <stdio.h>
int main()
{
int i=0;
char m[20];//定义一个数组
while (i<=5)
{
scanf("%c",&m[i]);//输入内容,即字符(大小写都可)
//printf("%c",m[i]);//这里可以查看数组内容,也可以不加
if (m[i]>=65 && m[i]<=96)//(字符即ABC.....包括大写,范围在65—96)
{
m[i]=m[i]+32;、//(大小写字母之间相差32,不懂得可以去查看上面的ASCll码表)
printf("%c",m[i]);//将数组输出
}
else if(m[i]>=97)//(这里即若输入的m[i]为小写字母)
{
m[i]=m[i]-32;//(将它转化为小写)
printf("%c",m[i]);
}
i++;
}
return 0;
}
//这里的双目操作符&&即为英文and的意思,后续会详细讲解
将大小写的数量分别打印出来
#include<stdio.h>
int main()
{
int i=0;
int k=0,l=0,p=0;
char m[100];//char即定义字符,注意这里不能输入数字(整型)
char a[26];//
while (i<10)
{
scanf("%c",&m[i]);//输入内容
if (m[i]>=65 && m[i]<=96)
{
m[i]=m[i]+32;
printf("%c",m[i]);//这两行是为了实现大小写转化,下面同理
k=k+1;//如有大写k即加1
}
else if(m[i]>=97)
{
m[i]=m[i]-32;
printf("%c",m[i]);
l=l+1 ;
}
i++;
}
printf("大写的个数为 %d",k);
printf("小写的个数为 %d",l);
}
以上即为对字符大小写和ASCll码表的介绍
如我的文章对您有些帮助,麻烦各位看官点赞关注,后续会出更多文章的谢谢
本篇中代码在本人码云中皆可查找,另有更多有趣代码噢~,欢迎来访~