




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第八章 字符与字符串,2,以前介绍的字符输入输出方法: scanf(“%c”, 四个函数都是在头文件stdio.h中定义的,3,1.字符输入函数getchar( ),例如: char c; c=getchar( ); 从键盘上输入:a 则字符型变量c等于字符a。 上式等价于 scanf(“%c”,4,但是不是所有场合二者都可以互相替换。下面我们列出了它们的不同之处: (1) getchar( )一次只能接收一个字符。 (2) getchar( )可以接收回车字符。而scanf( )将回车作为数据的间隔符或结束符。 (3) getchar( )接收的字符可以不赋给任何变量。,5,2.字符输出函数putchar( ),例如:char c=A; putchar(c); 结果是输出字符变量c的值。,6,8.2 字符数组,如果有一个字符序列:I like C,我们可以把它看作是如下8个字符的集合: I, ,l,i,k,e, ,C; 可以将这个字符序列存入字符数组中;,7,8.2 字符数组,该字符数组的赋值可以采用三种方法: 方法一:初始化 方法二:分别赋值,8,8.2 字符数组,该字符数组的赋值可以采用三种方法: 方法三:循环赋值 总结:除了使用初始化方法,只能一个元素一个元素赋值。,9,8.2 字符数组,同样,将字符数组中的内容全部输出,也只能一个元素一个元素地输出:,10,8.2 字符串,字符串的处理是基于字符数组的。 字符串的存储特点:实际存储时,在其尾部添加了一个结束标志0。 说明:0代表ASCII码为0的字符,是一个空操作符,无显示内容,表示什么操作也不做。 采用字符数组存放字符串:赋值时应包含结束标志0。,11,8.2 字符串,例如:将“I like C”存放入数组c中,实际存放了9个字符: I, ,l,i,k,e, ,C ,0 ; 字符串在字符数组中的状态:,12,8.2 字符串,字符串对应的字符数组的赋值方法: 方法一:初始化 方法二:分别赋值,13,8.2 字符串,字符串对应的字符数组的赋值方法: 方法三:循环赋值 总结:末尾增加了一个0字符。,14,8.2 字符串,字符串的输出也可以采用单个字符一个一个输出的方式:,15,8.2 字符串,字符串除了具备以上字符数组的处理方式之外,还可以采用C语言提供的输入输出字符串的格式符“%s”。所以,方法四为: 注意:字符数组的名字c表示的是该数组的首地址,所以无需加地址符&,以下写法是错误的:,16,8.2 字符串,同样,采用printf( )函数输出字符串时,格式符“%s”对应的变量是字符数组的名字:,注意:采用格式符“%s”输入输出字符串时,字符数组应大于等于字符串中字符的总数加1,17,8.2 字符串,字符串的初始化可以看作是字符序列赋值的第五种方法,这种方法更为简便:,18,8.3 字符串的输入输出函数,在C语言中提供了字符串的输入输出函数gets( )和 puts( ): 头文件:在 “stdio.h”中定义的。 用途:用于整个字符串的输入输出。,19,1. 字符串输出函数puts( ),例如:,20,puts()使用的注意事项: 一次只能输出一个字符串; 可以输出转义字符; 输出字符串后自动换行;,21,2. 字符串输入函数gets( ),例如:,22,gets()使用的注意事项: 函数gets()一次只能输入一个字符串; 同scanf()函数一样,在gets()读入一个字符串后,系统自动在字符串后面加上一个结束标志0; 函数gets()可以读入包含空格和TAB的全部字符,直到遇到回车为止;使用格式符“%s”的函数scanf()以空格,TAB或回车作为一段字符串的间隔符或结束符。 含有空格和TAB的字符串要用gets()函数输入。,23,C语言提供了很多字符串操作函数,这些库函数 极大地方便了字符串的使用。 puts 输出字符串 gets 输入字符串 (#include) strcat 字符串连接 strcpy 字符串复制 strcmp 字符串比较 strlen 字符串长度 strlwr 将字符串中的大写字符转换为小写字符 strupr 将字符串中的小写字符转换为大写字符 (#include),8.4 字符串操作函数,printf, scanf putchar, getchar,24,8.5 二维字符串数组,二维字符串数组的初始化 二维字符串数组的初始化,可以采用二维字符数组初始化形式或者字符串初始化形式, 如: char name210=J,o,h,n,0,M,a,r,r,y,0; char name210=”John”,”Marry”; char name210=”John”,”Marry”; 三种方法效果一样。,25,第九章 变量类别与编译预处理,26,全局变量和局部变量,C语言根据变量作用域的不同,将变量分为局部 变量和全局变量。 局部变量:变量定义的位置在函数内部。 全局变量:变量定义的位置在函数外部。 不同的定义位置决定了变量的作用范围(称为作用 域)。,27,宏定义,C语言在对源程序进行正常编译之前,先对一些 特殊的预处理命令作解释,产生一个新的源程序(称 做编译预处理),之后再进行通常的编译。 在源程序中,所有预处理命令行都以符号“#”开头,并且结尾不用分号。C语言提供的预处理命令主要有:宏定义、文件包含和条件编译。其中宏定义分为带参数的宏定义和不带参数的宏定义。,28,一、不带参数的宏定义 不带参数的宏定义的一般形式为: #define 标识符 字符串 它的作用是在编译预处理时,将源程序中所有标识 符替换成字符串。 例如: #define PR printf #define N 2 宏定义常用来定义符号常量。,29,无参数的宏定义使用时,要注意以下几个问题: (1)宏名一般用大写字母,以便与变量名的区别。 用小写字母也不算错。 (2)在编译预处理时宏名与字符串进行替换时,不 作语法检查。 (3)宏名的有效范围是从定义位置到文件结束。如 果需要终止宏定义的作用域,可以用#undef命令。 (4)宏定义时可以引用已经定义的宏名。,30,二、带参数的宏定义,带参数的宏定义的一般形式为 #define 标识符(参数表) 字符串 它的作用是在编译预处理时,将源程序中所有标识符替换成字符串,并且将字符串中的参数用实际使用的参数替换。 例如: #define S( a,b,c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏扬州人才集团下属企业招聘6人笔试备考题库参考答案详解
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试参考题库及1套完整答案详解
- 2025年东莞市公务员考试行测真题及答案详解1套
- 2025年人教部编本语文四年级下册第三次月考测试题(附答案)(一)
- 吉林省松原市前郭一中2024-2025学年度6月份质量检测 (含答案)人教版(2024)七年级下册
- 辽宁省锦州市某校2024-2025学年高一下学期期中物理试卷
- 陕西省部分学校2024-2025学年高一上学期1月期末考试检测数学试卷(解析版)
- 元旦快乐与孩子一起讲故事
- 房地产项目进度执行与监控
- 语文片段教学课件
- 安徽省合肥市庐江县2023-2024学年七年级下学期6月期末数学试题
- 北京开放大学2025年《装配式技术与应用》形成性考核1答案
- 2025年保安证考试答题技巧与试题答案
- 中级宏观经济学知到课后答案智慧树章节测试答案2025年春浙江大学
- 2025年恒丰银行烟台分行招聘笔试参考题库含答案解析
- 【MOOC】工程电磁场与波-浙江大学 中国大学慕课MOOC答案
- ASTM-D3359-(附著力测试标准)-中文版
- DL-T5706-2014火力发电工程施工组织设计导则
- 《医疗质量管理办法》解读
- 全国工会财务知识竞赛题库及答案
- 冷水机组吊装运输施工方案
评论
0/150
提交评论