《《字符型数据》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《字符型数据》PPT课件.ppt(22页珍藏版)》请在三一办公上搜索。
1、第6章 字符型数据,本章要点:6.1 字符型常量6.2 字符变量6.3 字符的输入和输出,6.1 字符型常量6.1.1 字符常量字符常量是用一对单引号括起来的一个字符。如a、B、?等都是字符常量。作为字符常量的小写字母a,在程序中写成a,以便和标识符a区别开来。关于字符常量,以下有几点说明:(1)其中单引号只是作为定界符使用,并不是字符常量的组成部分,也就是说在输出字符常量时,一对单引号并不被输出。(2)单引号中的大写字母和小写字母代表不同的字符常量,如A和a是不同的字符常量。(3)被一对单引号括起来的字符不允许是单引号或反斜杠,即或。,(4)字符常量只能包含一个字符,故abc是不合法的。(5
2、)在C语言中,字符常量具有数值,这个值就是该字符在规定的字符集中的ASCII代码值。在ASCII字符集中的256个字符的值为0255。如a的值为97,A的值为65。(6)字符常量在机器内以整型常量的形式存放,占一个字节。因此,字符常量与整型常量等价。也就是说,字符常量可以像整数一样,在程序中参与各种运算。重点提示:字符常量只是单个的字符,而且与标识符之间是有区别的,标识符不带有单引号,而字符常量必须使用单引号。,6.1.2 转义字符常量除了以上形式的字符常量外,C语言还允许用一种特殊形式的字符常量,即以一个“”开头的字符序列。例如,在printf函数中的n,这里的“n”不代表字母n而作为“换行
3、”符。这类字符称为转义字符,又称为反斜线字符,意思是将反斜杠()后面的字符转换成另外的意义。其特点是都以“”开头。,以下是关于转义字符的几点说明:1转义字符常量只代表一个字符。2反斜杠后的八进制数可以不用0开头,如141代表的就是字符常量a。3反斜杠后的十六进制数只能以小写字母x开头,不允许用大写X,也不能用0 x开头,如x41是代表字符常量A。重点提示:转义字符常量,均以一个“”开头。若要输出一个字符,则输出格式应为。,6.1.3 字符串常量 字符串常量是由一对双引号“”括起来的字符序列。例如:“C Program”、“string”都是字符串常量。字符串常量与字符常量的区别有以下:(1)使
4、用的引号类型不同:字符常量由单引号括起来,字符串常量则用双引号括起来。例如:“a”是字符串,a是字符,二者不同。(2)容量不同:字符常量只能是单个字符,字符串常量则可以含一个或多个字符。(3)占用内存空间大小不同:字符常量占一个字节的内存空间,字符串常量占的内存字节数等于字符串中字节数加1。增加的一个字节用来存放字符0,作为字符串的结束标志。,字符常量B与字符串常量“B”虽然都只是一个字符,但占用的内存空间不同,前者为1个,后者为2个。C语言中没有专门存放字符串的字符串变量,字符串如果需要放在变量中,应该放在一个字符型数组中,即用一个字符型数组来存放一个字符串。这分部内容将在后面章节予以介绍。
5、重点提示:系统在每个字符串的最后自动加入一个字符0作为字符串结束标志。要注意字符常量和字符串常量的区别。,6.1.3 可对字符量进行的运算由于字符量具有数值,在机器内也是以整型常量的形式存放,因此字符可参与任何整数运算。1利用算术运算实现大写字母与小写字母的互换。例如:A+3265+32a b-3298-32B2利用算术运算实现字符与整数值之间的互换。例如:9057489 表达式中,57、48分别是用十进制表示的字符9、0的ASCII代码值。注意,编程时要分清整数9和字符9的区别。,3字符常量也可以进行关系运算。例如:ab在ASCII代码表中,a的值是97,小于b的值98,所以关系运算的结果为
6、“真”。4字符常量还可以进行逻辑运算。例如:a&b的逻辑值为1。重点提示:字符常量在机器内以整型常量的形式存放,占一个字节。因此,字符常量与整型常量等价。也就是说,字符常量可以像整数一样,在程序中参与各种运算。,6.2 字符变量字符变量就是值为单个字符的变量。字符型变量的说明格式为:char 变量名表;1字符变量在内存中占一个字节,只能存放一个字符,可以是ASCII字符集中的任何字符。当把字符放入字符变量中时,字符变量中的值就是该字符的ASCII值。2在合法的取值范围内,字符型变量与整型变量可以通用。3字符型数据输入、输出形式灵活多样。一字符数据既可以以字符形式输出,也可以以整数形式输出。重点
7、提示:字符变量可以作为整型变量来处理,可以参与对整型变量所允许的任何运算。,6.3 字符的输入和输出6.3.1 调用printf和scanf函数输出和输入字符用printf函数输出字符时须使用格式说明%c,但可以在格式字符前加一整数m,用来指定输出字符的宽度。调用scanf函数可以输入字符。也须使用格式说明符号%,且输入的字符变量前必须加&.以下是几点关于scanf输入字符的几点说明:(1)当使用的格式说明符%c一个紧接着一个,在输入的时候字符之间没有间隔符时,空格、回车和横向跳格符都将按字符读入。(2)在格式控制串中可以加入空格。,(3)格式控制符前也可以加一整数m,用来指定输入数据所占宽度
8、。这时在输入字符数据时,应严格按指定的宽度输入数据,且取指定宽度中的第一个字符作为输入的数据。(4)当从键盘输入字符,并且在格式说明中并未指定宽度时,输入的字符将按顺序赋予各输入项。printf和scanf函数的输入格式符可以参考第三章中的详细说明。以下是scanf函数应用举例。,例如:求方程ax2+bx+c=0的根。其中a,b,c由键盘输入,设b2-4ac0。#include main()float a,b,c,disc,x1,x2,p,q;printf(Please enter float a,b,c:n);scanf(a=%f,b=%f,c=%f,程序运行结果为:x1=-0.37x2=5
9、.37,说明:(1)该程序是利用如下一元二次方程的求根公式来求解的:再将此公式分为两项:则方程两根可表示为:,,,,,(2)程序第9行中sqrt()是求平方根函数。由于要调用数学函数库中的函数,因此必须在程序的开头用预处理命令#include,把头文件“math.h”包含到程序中来。请注意,以后凡是在程序中要用到数学函数库中的函数,都应当这样处理。重点提示:用printf函数输出以及用scanf函数输入字符都必须使用格式说明%c。,6.3.2 调用putchar和getchar函数输出和输入字符1putchar()函数putchar的作用是向终端设备输出一个字符。其一般形式为:putchar(
10、参数)(1)在一个函数中要调用putchar函数,应在该函数的前面(或本文件开头)加上编译预处理语句:#include,(2)putchar函数的参数可以是字符变量或字符常量或整型变量,也可以是某个字符对应的ASCII码值,还可以是表达式。并且还可以是控制字符,如n,它的作用是回车换行,即使输出的当前位置移到下一行的开头。(3)putchar函数使用举例#include main()char c1,c2;c1=H;c2=i;putchar(c1);putchar(c2);程序运行结果为:Hi,2getchar()函数getchar函数的作用是向终端设备输入一个字符。其一般形式为:getchar
11、()getchar函数不需要参数,函数的值是从输入设备得到的字符。该函数的使用方式有两种:(1)把函数getchar得到的字符代码赋给一个字符型或整型变量。例如:int a;a=getchar();(2)把函数getchar得到的字符代码直接作为表达式的一部分,而不赋给任何变量。例如:printf(%c,getchar();,(3)getchar函数使用举例#includemain()int a;printf(Please enter a character:);a=getchar();printf(%ct%dt%ot%xn,a,a,a,a);程序运行结果为:Please enter a ch
12、aracter:FF 70 106 46,说明:该程序的作用是从键盘上输入一个字符,然后显示该字符及其十进制、八进制、十六进制的ASCII码值。试利用getchar函数与putchar函数显示由键盘输入的一个字符#include main()char c1;c1=getchar();putchar(c1);程序运行结果为:MM,说明:putchar函数的参数可以是表达式,因此上述程序的第3、4、5行可以简化为一条语句:putchar(getchar();该语句中的putchar参数是函数getchar。重点提示:本小节主要介绍C语言中数据输入输出的实现方法。这些输入输出规则比较繁琐,用法不当就得不到预期的结果,不少编程人员由于没掌握好这方面的知识而浪费了大量时间来调试程序。当然,初学者不可能一下子掌握所有细节,可以重点掌握最常用的一些规则,其他部分可在需要的时候随时查阅。建议读者通过上机实践来巩固所学知识。,