您好,欢迎访问三七文档
字符型常量字符常量转义字符常量字符串常量可对字符量进行的运算字符变量字符的输入和输出调用printf和scanf函数输出和输入字符调用putchar和getchar函数输出和输入字符程序举例说明一个字符常量代表ASCII字符集中的一个字符,字符常量是用单引号括起来的一个字符。例如:'A'、'C'、't'、'!'、'?'单引号中的大写字母和小写字母代表不同的字符常量。例如,'B'和'b'是不同的字符常量。单引号中的空格符也是一个字符常量,不能写成两个连续的单引号。字符常量只能包含一个字符,因此'abc'是非法的。字符常量不能用双引号括起来。例如,a不是字符常量,而是一个字符串。字符常量在内存中占一个字节,存放的是字符的ASCII代码值。•字符常量'A'的值为65(八进制数101)•字符常量'a'的值为97(八进制数141)•数字字符'0'的值为48(八进制数60)•空格字符的值为32(八进制数40)。C语言规定,所有字符常量都作为整型量来处理,在计算机内部,其对应的整数值就是ASCII字符集中该字符的序号(即ASCII代码值)。转义字符(又称反斜线字符)是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须括在一对单引号内。转义字符常量,如'\n','\101','\141'只代表一个字符。反斜线后的八进制数可以不用0开头。例如:'\101'代表的就是字符常量'A','\141'代表字符常量'a'。反斜线后的十六进制数只可由小写字母x开头,不允许用大写字母X,也不能用0x开头。例如:'\x41'代表字符常量'A','\x6d'(或'\x6D')代表字符常量'm'。说明字符串常量是由双引号括起来的一串字符。如"STRING"就是字符串常量。在C语言中,系统在每个字符串的最后自动加入一个字符'\0'作为字符串的结束标志。字符常量'Z'在内存中占一个字节;字符串常量Z占两个字节,其中一个字节用来存放'\0'。两个连续的双引号:""也是一个字符串常量,称为“空串”,占一个字节的存储空间来存放'\0'。注意•'B'-'A'≡66-65≡1'a'+1≡97+1≡98≡'b'(符号≡表示等价的意思)在C程序中,字符量可参与任何整数运算。例如:•'A'+32≡65+32≡97≡'a''b'-32≡98-32≡66≡'B'利用算术运算可以把大写字母转换成小写字母或把小写字母转换成大写字母,例如:•'9'-'0'≡57-48≡9'3'-'0'≡51-48≡3•'9'+'0'≡9+48≡57≡'9''4'+'0'≡4+48≡52≡'4'•一定要分清诸如整数9和字符'9'的区别。也可以通过算术运算把数字字符转换为整数值或把一位整数转换成数字字符,例如:•如果进行关系运算:'a''b',由于'a'的值97小于'b'的值98,所以'a''b'的结果为“假”,其值为0。•如果进行逻辑运算:'a'&&'b',由于'a'和'b'的ASCII代码值都为非零,“与”运算表达式的值为1。字符量也可以进行关系运算。字符变量用关键字char定义,定义的同时可以赋初值。字符变量在内存中占一个字节。当把字符放入字符变量中,字符变量中的值就是该字符的ASCII代码值,所以字符变量可以作为整型变量来处理,可以参与对整型变量所允许的任何运算。charc1='1',c2='A',c3;intk=5;c1++;c3=(c2+32+k)%25;例如•在程序的开头用包含头文件stdio.h的命令行:#includestdio.h在输入/输出时,使用格式说明%c。•1.用printf函数输出字符•2.用scanf函数输入字符调用printf和scanf函数输出和输入字符调用putchar和getchar函数输出和输入字符•1.用printf函数输出字符调用printf和scanf函数输出和输入字符有程序段:chara='S';printf("a=%c\n",a);输出结果:a=S有程序段:chara='A';printf("a=%3c\n",a);输出结果:a=A(A前有两个空格)用printf函数输出字符时,可以在格式字符前加一个整数,用来指定输出字符时所占的宽度。•2.用scanf函数输入字符调用printf和scanf函数输出和输入字符注意:1)输入字符时,字符之间不应有间隔符。若从第一列开始输入:THCRECR则在变量a中将存放字符T,变量b中存放字符H,变量c中存放回车符,字符E并没有读入。2)只有在用户敲入Enter键时,读入才开始执行。有程序段:chara,b,c;scanf("%c%c%c",&a,&b,&c);输入:THE变量a,b,c分别得到字符T,H,E•2.用scanf函数输入字符调用putchar和getchar函数输出和输入字符putchar函数用于输出字符,其调用形式如下:putchar(ch);其中ch可以是字符变量或是字符常量。例如:putchar('Y');将在终端输出字符Y。getchar函数用于输入字符,其调用形式如下:ch=getchar()getchar后的一对圆括号不可少,getchar()函数从终端读入一个字符作为函数值。以上调用形式把读入的一个字符赋给变量ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入Enter键时,读入才开始执行。例6.1以下程序输出26个大写字母和它们的ASCII代码,每行输出两组数据。结果#includestdio.hmain(){charch;inti;for(i=0;i26;i++){ch=i+65;if(i%2==0)printf(\n);printf(c=%cASCII=%d,ch,ch);}putchar('\n');}例6.2以下程序段等待从终端输入一个字符,当按Enter键时,程序才往下继续进行。#includestdio.hmain(){printf("PressEntertocontinue\n");while(getchar()!='\n');}例6.3以下程序把从终端输入的一行字符中所有的小写字母转换成大写字母,其他字符不变。结果#includestdio.hmain(){charc;while((c=getchar())!='\n'){if(c='a'&&c='z')c=c-'a'+'A';putchar(c);}putchar('\n');}**TheProgramming**CR**THEPROGRAMMING**例6.4编写程序统计输入的字符中空格符、换行符和横向跳格(制表)符的个数,用!号结束输入。#includestdio.h#includectype.hmain(){longn=0;charch;while((ch=getchar())!='!')if(isspace(ch))n++;printf(n=%ld\n,n);}例6.5把一串密码译成正文,密码以字符@表示结束。译码规则如下:•如果是字母,转换成字母序列的下一个字母。如A译成B、B译成C。•如果是字母Z,译成A。•无论是大小写字母都译成小写字母。•其他字符一律照原样译出。说明#includestdio.h#includectype.hmain(){charc;c=getchar();while(c!='@'){if(isalpha(c)){c=tolower(c);c=(c-'a'+1)%26+'a';}putchar(c);c=getchar();}printf(\n);}函数isalpha(c)判断c中的字符是否为字母,若是,函数值为1;函数tolower(c)把c中的大写字母转换成小写字母,其他字符不变。
本文标题:字符型结构
链接地址:https://www.777doc.com/doc-3131933 .html