第六章 字符型数据

耗尽温柔 提交于 2020-02-01 00:18:54

第六章 字符型数据

1·字符型常量

C语言中,一个字符常量代表ASCII字符集中的一个字符,在程序中用单引号把一个字符括起来作为字符常量。
说明:
(1)单引号中的大写字母和小写字母代表不同的字符常量
(2)单引号中的空格符’ ’ 也是一个字符常量,但不能写成两个连续的单引号
(3)字符常量只能包含一个字符,‘agc’是非法的
(4)字符常量只能由单引号括起来,不能用双引号括起来
字符常量在内存中占一个字节,存放的是字符的ASCII代码值。C语言规定,所有字符常量都作为整形量来处理,在计算机内部,其对应的整型数就是ASCII字符集中该字符的序号(即ASCII代码值)。字符常量‘A’的值是65(八进制数101)‘a’97(141)‘0’48(60)‘ ’32(40)
转义字符常量
转义字符又称反斜线字符,这些字符常量总是以一个反斜线开头后跟一个特定的字符,用来代表某一个特定的ASCII字符,这些字符常量也必须括在一对单引号内。

字符形式 功能 字符形式 功能
\n 回车换行 \ 反斜杠字符‘\’
\t 横向跳若干格(代表“Tab”键) \’ 单引号(撇号)字符
\v 竖向跳格 \’’ 双引号字符
\r 回车符 \ddd 三位八进制数代表一个ASCII字符
\f 换页符 \xhh 二位十六进制数代表的一个ASCII字符
\b 退格符(代表“Backspace”键) \0 空值,其ASCII码值为0

注意:转义字符常量,如‘\n’,‘\101’只代表一个字符
反斜线后的八进制数可以不用0开头
反斜线后的十六进制数只可由小写字母x开头,不允许用大写字母X,也不许用0x开头。如‘\x41’代表字符常量‘A’,‘\x6d’(也可以写成‘\x6D’)代表字符常量‘m’。

2·字符串常量

字符串常量是由双引号括起来的一串字符,“%d%d”也是。在C语言中,系统在每个字符串的最后自动加入一个字符‘\0’作为字符串的结束标志。“ABC\n”占五个字节,最后一个字节存放‘\0’,两个连续的双引号:“”也是一个字符串常量,称为“空串”,但要占一个字节的存放空间来存放‘\0’。
可对字符量进行的运算
在C语言中,字符量可参与任何整数运算
‘B’-‘A’ ≡66-65≡1 ‘a’+1≡97+1≡98≡‘b’
此处符号≡表示等价的意思

3·字符变量

C语言中,字符变量用关键字char进行定义,再定义的同时可以进行赋值。

char  h,n,m=’a’; 

4·字符的输入输出

调用scanf和printf函数输入输出字符
注意:(1)当用scanf,使用格式说明中的%c一个紧挨着一个时,字符之间不能有间隔符(但输入数字时可以有)这是空格、回车符等都将作为字符读入。
例如:

char  a,b,c;
scanf(%c%c%c”,&a,&b,&c);

当输入 TH
E时。变量a中将存放T,变量b中存放H,变量c中存放回车符,字符E并没有读入。当格式说明中加入空格、回车符等,将被认为是间隔符而不被读入
(2)当交叉输入数值数据和字符数据时,即在输入项列表中交替出现字符变量和数值变量,由于他们从终端读取数据的方式不同,如果客户不加注意,就很容易产生错误的输入结果。
例如:

int  a1,a2;char  c1,c2;     
scanf(%d%c%d%c”,&a1,&c1,&a2,&c2);

必须用以下形式输入数据:10A(空两格个)20B

5·调用putchar和getchar函数输入字符

putchar(ch); ch可以是字符变量或字符常量 将在终端输入ch
ch=getcher() getchar后圆括号中没有参数,但不可省略,从终端读入一个字符作为函数值
练习1·设计程序输出26个大写字母和他们的ASCII代码,每行输出两组数据。

#includ<stdio.h>
main()
{char ch;int  I;
 for(i=0;i<26;i++)
{ch=i+65;
if(i%2==0)  printf(“\n”);
printf(“c=%c   ASCII=%d”,ch,ch);
}
putchar(‘\n’);
}

2编写程序统计输入字符中空格符、换行符、横向跳格符(制表符)的个数,用!号结束输入。

#include<stdio.h>
#include<ctype.h>
main()
{long n;char  ch;                 // 函数isspace判断字符是否是空格符、换行符或横向跳
 while((ch=getchar())!=!)         // 格符函数isalpha判断字符是否是字母,若是函数值是
  if(isspace(ch)) n++;              // 1,函数tolower(c)把大写字母换为小写,其他字符
 printf(“n=%ld\n”,n);               // 不变
}   
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!