ASCII码:字符与数字的对照表
- “0”对应数字“48”,“1”对应数字“49”… …“9”对应数字“57”
- “A”对应数字“65”,“B”对应数字“66”… …“Z”对应数字“90”
- “a”对应数字“97”,“b”对应数字“98”… …“z”对应数字“122”
字符常量
单引号括起来,中间只有一个字符
转义字符
单引号括起来,中间由反斜杠开头后跟一个特殊字符
- \n 回车换行
- \t 一个制表符(键盘上的Tab键)
- \r 回车符
- \ 输出反斜杠
- ’ 单引号字符
- " 双引号字符
- \0 空值(屏幕上不可见)
‘\数字’ 只代表一个字符
字符串常量
双引号括起来,中间有若干字符和转义字符
字符变量的定义和输入输出
定义
char 变量名
- char a=‘a’
- char a=97
输入和输出
-
输入
变量=getchar()
scanf("%c%c",&a,&b) -
输出
putchar(字符)
printf(“%c”,字符变量) -
scanf和printf中要一次输入完全部字符,不能有空格、回车、Tab等,因为它也是字符,也会被接收
-
可以加上头文件<ctype.h>以防程序错误
程序举例
字母大小写转换
题目:
- 把从终端输入的小写字母转换为大写字母,其他字符不变
分析:
- 小写字母转换为大写字母需要减去32,反之大转小要加上32
- 判断小写字母,在’a‘到’z‘之间的字符
代码
#include<stdio.h>
#include<ctype.h> //可省略
int main()
{
char c;//定义一个字符型变量
while((c=getchar())!='\n')
//没有读入到回车的时候转换
{
if(c>='a'&&c<='z')
{
c=c-32;//或者写成c=c-'a'+'A';
putchar(c);//输出字符c
}
}
return 0;
}
统计字符的个数
题目:
- 统计字符中大写字母和小写字母的个数
分析:
- 分别为大写和小写字母定义一个变量作为计数器
- 分别找出大写和小写字母的范围
代码:
#include<stdio.h>
int main()
{
int a=0,b=0;
//定义s为小写字母数量,b为大写字母数量
char c;
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z')a++;
if(c>='A'&&c<='Z')b++;
}
printf("小写字母%d个,大写字母%d个",a,b);
return 0;
}