




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数组与字符串,课程安排,什么是数据的组合 数组与维度 字符数组与字符串 常用字符串处理函数,程序 = 数据(组合) + 语句(组合) 学习了C基本数据类型! 学习了各种表达式语句! 学习了语句组合流程:流程控制! 那么在C语言里,数据是如何组合的?,从回顾开始,相同类型数据组合 数组 字符串 枚举 不同类型数据组合 结构 联合,C组合数据类型,课程安排,什么是数据的组合 数组与维度 字符数组与字符串 常用字符串处理函数,数组变量定义 /类型 数组名数组元素个数 int score3 ; /学生的3门功课成绩 定义,数组概念1,数组变量占用的内存空间 /数组名代表数组首地址 printf(“score is %xn“, score); printf(“score is %pn“, score); /数组元素地址,数组的内存空间是连续的 printf(“score is %pn“, score); printf(“score is %pn“, 数组类型 数组的类型即是数组元素的类型 数组元素具备相同数据类型,在数组变量定义时指定,数组概念2,数组大小 size = sizeof(score); /等于每个元素大小的总和 size = sizeof(int) * 3; 数组元素个数 int score = 80, 90, 70; cnt = sizeof(score) / sizeof(int); /求数组元素个数的通用方法 cnt = sizeof(score) / sizeof(score0),数组概念3,数组维度 /定义二维数组 int score23 = /两个学生各自的三门功课成绩 80, 90, 70, 75, 65, 55 ; 可以理解为score是2个元素的数组,每个元素又是包含3个元素的数组 可以定义多维数组变量,但一般情况下用到二维已经足够了!,数组概念4,二维数组元素引用 for(i = 0; i 2; i+) for (j = 0; j 3; j+) printf(“第%d个人的第%d科成绩是%dn”, i, j, scoreij); ,二维数组1,二维数组定义 size = sizeof(int) * cnt /数组大小等于每个元素大小总和,二维数组2,二维数组地址 二维数组的内存空间也是连续的:下一行首地址紧接上一行尾地址 printf(“score is %pn”, score); /二维数组首地址 printf(“score0 is %pn”, score0); /二维数组第一行首地址 printf(“score1 is %pn”, score1); /二维数组第二行首地址 printf(“ /第二行第一个元素地址,二维数组3,用数组保存数据,可以做到快速定位(通过下标) 如:学生的第2门功课成绩: score1 如:第2个学生的第3门功课成绩:score12 但要寻找某个特定数值的元素,就没那么方便了(需要轮询)! 某个学生中不及格的功课? 所有学生的所有科目中,不及格的功课?,数组使用实例,课程安排,什么是数据的组合 数组与维度 字符数组与字符串 常用字符串处理函数,如何把你的名字保存在数组中 /需要用到字符型数组 /顺序将名字中的每个字符保存到数组元素中 char name1 = x, n, f; 为name1分配了多少内存空间?,什么是字符数组,一个一个字符初始化太笨拙了! char name = x, n, f; 能不能一串名字初始化进去? char name2 = “xnf”; 为name2分配了多少内存空间? 注意:多了一个字符串结束符0!,字符数组初始化,能够为整个数组赋值吗? char name 4; name = “xnf”; ? 只能为数组元素赋值 char name3; name0 = x; name1 = n; name2 = f 所以还是把赋值放在定义,字符数组赋值,用“”包含起来的字符的集合 如:”xnf” 字符串是一个常量 字符串默认以字符串结束符0结束 0的ascii编码是多少?= 0! 字符串可以为字符型数组变量初始化,将每个字符ascii码值保存到字符数组变量中,什么是字符串?,将班级所有学生的姓名保存在一个字符数组中?,实例,课程安排,什么是数据的组合 数组与维度 字符数组与字符串 常用字符串处理函数,char str10 = 0; /从控制台输入字符串 scanf(“%s”, ,字符串输入与输出,char str120 = 0; char str220 = 0; str1 = “hello”; ? str2 = “world”; ? str1 = str2; ? str1 + str2; ? 字符串数组可以在初始化时赋值 在其他位置赋值需要通过字符串拷贝strcpy和字符串连接strcat函数! strcpy要注意避免数组越界问题,更安全的做法是strncpy!,字符串拷贝与连接,char str1 = “hello”; str1的长度是多少?str1的内存大小是多少 char str2 = “heLlo”; str1与str2一样么?如何比较 通过sizeof运算符判断字符串占用的内存大小 通过strlen函数获取字符串长度,通过strcmp函数比较字符串大小 注意: 1、strcmp是逐个将2个字符串中的字符ASCII码值逐个比较,全部字符值相同则 字符串相等;通常用于用户名、密码登陆等认证场合。,字符串长度与比较,如何将“100”转换成数值100? char str = “100”; int num = 0; num = atoi(str); 如何将数组100转换成字符串“100”? char str5 = 0; int num = 100; sprintf(str, “%d”, 100);,数值字符串与数值转换,上机实验,1、学生张三的5门功课成绩为别为80、71、55、93、40,请将他的成绩保存在数组中,并将不及格的成绩找到并打印出来 2、学生张三的5门功课成绩为别为80、71、55、93、40;李四的5门功课成绩为别为57、87、59、60、100;王五的5门功课成绩为别为66、59、86、45、8
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级殡葬试题附答案
- 2025年行政岗位专业题库及答案
- 高二物理选择性必修一1.3 动量守恒定律 课时同步练习(含解析)
- 2025年数字娱乐平台运营师专业技能考核试题及答案
- 有话好好说教学课件
- 车辆置换基础知识培训课件
- 毛概主题中国梦课件
- 教学技能上课课件
- 毛囊炎课件教学课件
- 车辆底盘课件
- 水箱拆除专项施工方案
- YY/T 1851-2022用于增材制造的医用纯钽粉末
- GB/T 20858-2007玻璃容器用重量法测定容量试验方法
- 纪委案件审理课件教材
- 生活中的会计课件
- 辽宁大学学生手册
- 湘美版美术一年级上册全册课件
- 酒水购销合同范本(3篇)
- 师说一等奖优秀课件师说优质课一等奖
- 学习罗阳青年队故事PPT在急难险重任务中携手拼搏奉献PPT课件(带内容)
- 小学生打扫卫生值日表word模板
评论
0/150
提交评论