下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章主要内容如下:c语言数组:一维、二维c语言风格字符串:字符串处理函数1.1数组的引入c语言中的数据类型除了前面的章节我们介绍的基本类型(如整型、实型、字符型等) 外,还有i种称为构造类型。数组就是构造类型的一种,它是由-组数目固定、类型相同的 若干个数据构成的有序集合,在内存中连续存放。数组中的每一个数据称为一个元素,通过 数组名和下标来访问。那么为什么需要数组?在解决一些实际的问题中,我们往往需要面对 成批的数据。如:要求输入全班50个学生某一门课程的成绩,计算并输出全班学生的平均 成绩,同时统计并输出低于平均成绩的人数。在解决这类问题时,如果仍然用基本数据类型 来处理,由于在计算平均成
2、绩吋要用到每个学生的成绩,在统计低于平均成绩的学生人数吋, 又要用到每个学生的成绩,这样就必须定义50个变量來保存50个学生的成绩。这样无疑增 加了程序的复杂度和代码量。所以我们需要引入数组,它是学生成绩的集合,可以用数组名 和下标访问每一个学生的成绩。1.2维数组概念:一维数组也称向量,用以组织具有一维顺序关系的一组同类型数据 定义格式:类熨数组名常量表达式;类型可以是int, float, char以及后面的指针、结构体、共用 体等。eg: int ageio;这样,编译器将一次性开辟10个存放int类型的连续的内存空间,就 不用定义10个int类型的变量。初始化:类型 数组名常量表达式戶
3、值1,值2,值3值n; eg: int a10 = l,2, 3,4, 5, 6, 7, 8, 9,10;使用:一维数组中元素的引用方式:数组名下标。下标的值表示元素在数组中的位置。c语 言规定任何数组的下标都是从0开始的。eg: int age5;表示age有5个元素,这5个元素 分别为age0、agel、age2、age3、age4o不要去访问age5,因为会出现下标越界的 错误。通常针对数组进行操作时,最有效的途径是使用循环结构。(参见代码example 1) 注意事项:除了在定义数组时可以用初始化列表为数组整体赋值之外,其他地方不能对数组整体赋 值。在对数组的所有元素赋初值时,可以在定
4、义数组的时候不指定元素的个数。eg:inta5 = 3, 0, 4, 9, 6;等价于int a = 3, 0, 4, 9, 6;系统在编译程序时,根据初值的个数确定元素的 个数,并为它分配相应大小的空间。如果没有为数组变量赋初值,则在定义数组变量的时候 不能省略数组的大小。eg: int a;这是错误的。对数组的部分元素赋初值,常量表达式的个数小于数组中元素的个数,未指定的数组元 素自动变为 0。eg: int a二3,4,5;等价于 int a5 = 3,4, 5, 0,0;1.3二维数组概念:二维数组的数据结构是一个二维表,相当于数学中的矩阵。定义格式:数据类型数组名常量表达式1常量表达
5、式2; eg: int a34;表示3行4列的矩阵, 总共12个元素,每一个元素都是整型数据。二维数组在内存中是按行的顺序存储的,即先 存放第0行的各列数据,在存放第1行的,以此类推。初始化:eg: int a314 = 1,2, 3,4, 5,6, 7, 8, 9, 10, 11, 12;或直接 int a34 = 1,2, 3, 4,5, 6, 7, 8, 9, 10, 11, 12;也可以对二维数组的部分元素进行初始化:int a34 = 2, 5, 6, 14, 0, 12;等价于 int a34 = 2, 5, 0,0, 6, 0, 0, 0, 14, 0, 12, 0;还可以省略一
6、维大小 int a3 = 3,4, 5, 6, 8, 9;等价于 int a3 = 3,4, 5, 6, & 9;第二维的大小不能省略。 使用:数组名下标1下标2;下标1为行下标,下标2为列下标。(参见代码example2)1.4字符数组字符数组是用來存储字符型数据的数组,数组的每一个元素存储一个字符型数据。字符 数组的定义并初始化:char a习二t7, 4h 4n富;字符数组在定义时只对部分元素进行 初始化,则未赋初值的元素默认的初值是=0=(参见代码example3)1.5c风格字符串在c语言中没有字符串变量的概念,我们通常是利用字符数组或者指针來存储字符串。 编译器把每个字符串
7、理解为一个以'0 (ascii为0)为结束符的一维字符数组,这种类型 的字符数组常被称为c风格字符串。声明一个c风格字符串,其内容为“i love c+!”,代码如下:char st叩二t,'','l,'0'上述代码在声明数组时没有指定大小,这样,编译器就会自行计算决定数组的大小。对 于c风格字符串的声明,推荐采用这种方式,免去了程序员自行计数的麻烦,如果由程序 员指定的数组太小,编译器会报错,太大的话就浪费空间。但若在声明语句屮无初始化表达 式,则应该指出该字符数组的大小。可以看出,存储一个字符串所需字节数比该串的字符数多1,如存储“hello
8、”,该串有5 个字母,但c风格字符串需要6个字节。而且,上述声明方式看上去很麻烦,要一个字母 一个字母地用单引号包裹起來,还要记着后面的'0,,实际上,c还提供了另一种声明c风 格字符串的方法一一使用字符串常量,如:char str=t love c+!"等价于 char str = “i love c+!"字符串的输入:scanf()函数:不能输入包含空格的句子。eg:char str20j; scanf(“s”,str);当输入how are you时,只能接收到howgets()函数:能输入完整的句子,弥补了 scanf函数不能输入包含空格的句子的不足。输入
9、一行字符时,以enlei键作为结束符。在向字符数组赋值时,自动将xn,转化为,(t,作为字 符串的结束标志。eg:char str30; gets(str);当输入how are you吋,可以接受全部。 字符串的输出:printf()函数:依次输出字符串中的每个字符直到遇到字符串结束符,(t。若printf()函数输 岀项的字符数组屮不止一个'(r,则输出时遇到第一个so,就结束。输出字符串后不会自动换 彳亍。eg:char str = “china" printf("%s", str);puts()函数:将一个字符串(以结束的字符序列)输出到终端。在输
10、出时,将字符串的 结束符w自动转化为即输岀完字符串之后自动换行。eg:char strlj = "china”; puts(str);在使用这些函数的时候,要注意输入缓冲区的问题,详情请参考scanf()getchar()和gets() 等函数的注意事项.doc1.6c语言风格字符串处理函数头文件包含 #include <string.h>1. 字符串复制函数strcpy()char *strcpy( char *to, const char *from );功能:复制字符串from中的字符到字符串to,包括空值结束符,返回值为指针to。会覆盖 掉以前to中的内容。to中
11、一定要能够容纳的下from。2. 字符串连接函数strcat()char estreat( char *strl, const char *str2 );功能:函数将字符串st2连接到strl的末端,并返冋指针strlo在调用strcat的时候要确保 strl的大小能够容纳的下连接完成后生成的新字符串。3. 字符串比较函数strcmpoint strcmp( const char *strl, const char *str、2 ); 功能:比较字符串strl和str2o 一个字符一个字符的比较。如果strl大于str2,返回值大于 0;如果strl等于str2,返冋值为0;如果strl小于str2,返回值小于0。4. 求字符串长度函数strlen()size t strlen( char *str );功能:函数返回字符串str的长度(即空值结束符之前字符数目)。注意与sizeof的区别。 (strlen求字符串的长度。sizeof求字符串所占用的内存空间
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全总结提炼经验-工作总结安全教育培训
- 共益企业评定报告
- 六年级英语2026年上学期阅读判断综合题集
- 2025年大型设备操作培训合同
- 2026年建筑设备转让合同二篇
- 广西崇左市2026届高考化学试题全练版含解析
- 基于Spark的实时日志分析平台部署与案例课程设计
- 强化学习广告预算分配设计课程设计
- TLS优化实验设计课程设计
- 2024-2025学年北京十中、丰台二中八年级(下)期中数学试题及答案
- (新教材)2026年部编人教版三年级下册语文 第六单元《口语交际:应该怎样安排座位》教学课件
- 公务车辆租赁管理办法
- 电子设备装接工职业技能资格知识考试题与答案
- 2025年全椒县人民医院面试题库及答案
- 助贷公司运营管理制度
- 脑卒中社区康复阶梯式个案管理实践
- 面点厨师培训教程课件
- 黑龙江省哈尔滨市2025年中考语文真题试卷附真题答案
- T-CAMDI 135-2024 输液、输血器具用共聚聚酯(PCTG)专用料
- 上海高校毕业生登记表(本专科生)
- 假期安全教育课件-1
评论
0/150
提交评论