内容正文:
《C语言学习与应用》教学课件
任务说明
C语言中,字符是一个可用ASCII码表示的单个字符,在内存中占一个字节,将若干个字符连起来用字符型数组存储就是字符串。单个字符串可用一维数组表示,二维数组可表示多个字符串,对字符串的各种操作是建立在数组操作基础上的。
这个任务就是学习掌握针对字符串的程序设计。
学习任务9 字符串操作——信息统计
微课
任务说明
学习任务9 字符串操作——信息统计
知识要求
了解字符与字符串常量。
掌握字符的运算及字符与数字之间的转换。
掌握字符的加密算法。
熟悉字符与字符串的常用函数。
掌握字符串的遍历方法。
学习任务9 字符串操作——信息统计
‹#›
能够编写对单个字符操作的函数。
能够编写对字符串操作的函数。
能够编写对多个字符串操作的函数。
能够排查程序中的错误。
能够倾听小组同学的问题并协商解决问题的方法。
能力要求
学习任务9 字符串操作——信息统计
‹#›
字符
01
1.字符与字符串常量
字符常量是用单引号括起来的一个字符或以反斜线开头的转义字符。在内存中占用一个字节,存储的是该字符的ASCII码。字符串常量是用双引号括起来的一串字符,其中隐含一个结束符(‘\0’),因此字符串常量在内存中所占字节数等于有效字符的个数+1,可以用strlen()函数测试有效字符的个数,结束符(‘\0’)不计算在内。例如strlen(“ABC“)的值是3,strlen(“AB\0C”)的值是2,统计至结束符之前的有效字符数。
学习任务9 字符串操作——信息统计
‹#›
表9-1 字符常量对照表
字
符
常
量 举 例 注 释
‘A’ 普通字符常量,在内存占一个字节,存该字符的ASCII
‘
’ 转义字符常量
‘\101’ ‘\ddd’ 由1~3位八进制数构成的转义字符
‘\x41’ ‘\xhh’ 由1~2位十六进制数构成的转义字符
‘\0’ ASCII码为0的结束符
学习任务9 字符串操作——信息统计
表9-1 字符串常量对照表
字
符
串
常
量 举 例 注 释
”A” 字符串常量,在内存占2个字节存’A’和’\0’
“ABC” 在内存占4个字节存’A’,’B’,’C’和’\0’,strlen(“ABC”)的值是3
“\101\x42\103” 就是用转义字符表示的“ABC”
“” 字符串常量,是空串,在内存占1个字节,存放的是‘\0’
“AB\0C” strlen(“AB\0C”)的值是2,统计结束符之前的字符个数
"AB\061C" strlen("AB\061C")的值是4ˈ,\061ˈ是字符ˈ1ˈ
学习任务9 字符串操作——信息统计
微课
字符常量与字符串常量
学习任务9 字符串操作——信息统计
2.字符的运算
由于字符在内存中是以ASCII码形式存储的,因此字符可以参与运算(整型常量或整型变量的值在0~127之间的运算)。
例如,ˈCˈ−ˈAˈ的值为2,ˈAˈ+32的值为97或ˈaˈ,9+ ˈ0ˈ的值为ˈ9ˈ;ˈ9ˈ−ˈ0ˈ的值为9。
说明:
一位数字转换为对应字符的方法为数字+ˈ0ˈ,如6+ˈ0ˈ的值是ˈ6ˈ;
一个数字字符转换为对应的数字的方法为数字字符−ˈ0ˈ,如ˈ5ˈ−ˈ0ˈ是数5。
学习任务9 字符串操作——信息统计
3.专用于字符输入/输出的函数
(1)scanf函数的%c格式
可以用scanf函数的%c格式输入字符,因为按任意键都可以作为字符接收,所以要使变量获得期望值,须用对输入进行设计,否则得不到正确的输入。
学习任务9 字符串操作——信息统计
问题9-1 下面这段程序,欲使c1获得字符A,c2获得字符B,a1为7.29,a2为101.29,如何输入?
void main( )
{
char c1,c2;
float a1,a2;
scanf("%f%f",&a1,&a2);
scanf("%c%c",&c1,&c2);
printf("a1=%f,a2=%f,c1=%c,c2=%c
",a1,a2,c1,c2);
}
请思考怎样输入:
除了需要精心设计输入外,还有其他办法吗?
在两条输入语句之间插入“fflush(stdin);”语句,在输入此函数后面的字符时只能按Enter键与前面的输入内容做间隔。看看效果,这是清空标准输入缓冲区的函数,挺管用的!
学习任务9 字符串操作——信息统计
(2)putchar和getchar函数
这是专用于单个字符的输出和输入函数,使用时必须包含头文件stdio.h