- 全国计算机等级考试《二级C语言程序设计》【教材精讲+真题解析】讲义与视频课程【45小时高清视频】
- 圣才电子书
- 1074字
- 2021-06-08 15:34:22
第6章 字符型数据[视频讲解]
6.1 字符型常量
视频二维码(扫码观看)
一、字符常量
一个字符常量代表ASCII字符集中的一个字符,用单引号把一个字符括起来作为字符常量。'A'、'C'、't'、'!'、'?'都是合法的字符常量。
【说明】
①大写字母和小写字母代表不同的字符常量。
②单引号中的空格符' '不能写成''。
③字符常量只能包含一个字符,'abc'非法。
④字符'a',字符串"a"。
字符常量在内存中占一个字节,存放的是字符的ASCII代码值。C语言规定,所有字符常量都作为整型量来处理,即ASCII代码值。
【常用】
字符常量'A'的值为65,'B'的值为66,…
字母字符'a'的值为97,'b'的值为98,…
数字字符'0'的值为48,'1'的值为49,…
空格字符' '的值为32。
二、转义字符常量
反斜线后面跟一个特定字符,用来表示某一个特定的ASCII字符。常见的:
【注意】
①转义字符常量,如'\n'、'\101'、'\141'只代表一个字符。
②反斜线后的八进制数可以不用0开头。如:'\101'代表的就是字符常量'A','\141'代表字符常量'a'。
③反斜线后的十六进制数只可由小写字母x开头,不允许用大写字母X,也不能用0x开头。如:'\x41'代表字符常量'A','\x6d'代表字符常量'm'。
三、字符串常量
定义:用双引号("")括起来的字符序列。
存储:每个字符串尾自动加一个'\0'作为字符串结束标志。
四、字符运算
(1)字符使用ASCII代码值来运算。
'B'-'A'=66-65=1
'a'+1=97+1=98='b'
9+'0'=9+48=57='9'
4+'0'=4+48=52='4'
(2)字符量可以进行关系运算。
如:'a'>'b'
(3)字符量可以进行逻辑运算。
如:'a'&&'b'
6.2 字符变量
视频二维码(扫码观看)
char c1,c2,c3;
int k=5;
c1='1';
c1++;
c2='A';
c3=(c2+32+k)%25;
6.3 字符输入和输出
视频二维码(扫码观看)
(1)scanf输出(<CR>代表Enter键)
#include <stdio.h>
char a,b,c;
scanf("%c%c%c",&a,&b,&c);
TH<CR>
E<CR>
【注意】在输入字符时,字符之间不应有间隔符,这时空格、回车符和横向跳格符(Tab键)都将作为字符读入。
可以在格式说明串中加入空格,如:
scanf("%c%c%c",&a,&b,&c);
输出:ABC<CR>
scanf("%c %c %c",&a,&b,&c);
输出:A B C<CR>
(2)printf输出
char a='S';
printf("a=%c\n",a);
输出形式为:a=S
a='A'
printf("a=%3c\n",a);
输出形式为:a= A
(3)getchar、putchar输入输出
putchar函数用于输出字符,其调用形式如下:
putchar(ch);
putchar('Y');
getchar函数用于输入字符,其调用形式如下:
ch=getchar();
getchar()后的一对圆括号内没有参数,但这一对圆括号不可少,getchar()函数从终端读入一个字符作为函数值。
在输入时,空格、回车符都将作为字符读入。
【注意】用户敲入Enter键时,读入才开始执行。
6.4 程序举例
视频二维码(扫码观看)
【例1】从终端输入的一行字符中所有的小写字母转换成大写字母,其他字符不变。
#include <stdio.h>
main()
{
char c;
while((c=getchar())!='\n')
{
if(c>='a'&&c<='z')c=c-'a'+'A';
putchar(c);
}
putchar('\n');
}
【例2】编写程序统计输入的字符中空格符、换行符和横向跳格(制表)符的个数,用!号结束输入。
#include <stdio.h>
#include <ctype.h>
main()
{
long n=0;
char ch;
while((ch=getchar())!='!')
if(isspace(ch))n++;
printf("n=%ld\n",n);
}
6.5 习题解析
1C语言中的简单数据类型有( )
A.整型、实型、逻辑型
B.整型、实型、字符型
C.整型、字符型、逻辑型
D.整型、实型、逻辑型、字符型
2判断char型变量c是否为大写字母的正确的表达式是( )
A.'A'<=c<='Z'
B.(c>='A')||(c<='Z')
C.('A'<=c)AND('Z'>=c)
D.(c>='A')&&(c<='Z')
3请编写程序统计输入的一行中小写字母的个数。