嵌入式C编程01数组与字符串课件_第1页
嵌入式C编程01数组与字符串课件_第2页
嵌入式C编程01数组与字符串课件_第3页
嵌入式C编程01数组与字符串课件_第4页
嵌入式C编程01数组与字符串课件_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数组与字符串课程安排什么是数据的组合数组与维度字符数组与字符串常用字符串处理函数程序=数据(组合)+语句(组合)学习了C基本数据类型!学习了各种表达式语句! 学习了语句组合流程:流程控制!

那么在C语言里,数据是如何组合的?

从回顾开始课程安排什么是数据的组合数组与维度字符数组与字符串常用字符串处理函数数组变量定义//类型数组名[数组元素个数]

intscore[3];//学生的3门功课成绩定义&初始化

intscore[3]={0};

intscore[3]={80,90,70};

intscore[]={80,90,70};//好处是可以根据初始化需要扩展元素个数数组元素通过下标逐个引用

for(i=0;i<3;i++)

printf(“第%d科成绩是%d”,i,score[i]);数组越界会怎么样?

score[3]=100;score[4]=95;数组概念1数组变量占用的内存空间

//数组名代表数组首地址

printf("scoreis%x\n",score);

printf("scoreis%p\n",score);

//数组元素地址,数组的内存空间是连续的

printf("scoreis%p\n",score);

printf("scoreis%p\n",&score[0]);

printf("scoreis%p\n",&score[1]);

printf("scoreis%p\n",&score[2]);数组类型数组的类型即是数组元素的类型 数组元素具备相同数据类型,在数组变量定义时指定数组概念2数组维度//定义二维数组

intscore[2][3]=//两个学生各自的三门功课成绩 { {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科成绩是%d\n”,i,j,score[i][j]); }}

二维数组1二维数组定义&初始化

intscore[][3]=//好处是可以根据初始化需要扩展元素个数 { {1,2,3}, {4,5,6}, {7,8,9}, {10,11,12}, };二维数组大小与元素个数

size=sizeof(score);

cnt=sizeof(score)/sizeof(score[0][0]);size=sizeof(int)*cnt//数组大小等于每个元素大小总和

二维数组2用数组保存数据,可以做到快速定位(通过下标)如:学生的第2门功课成绩:score[1]如:第2个学生的第3门功课成绩:score[1][2]但要寻找某个特定数值的元素,就没那么方便了(需要轮询)!某个学生中不及格的功课?所有学生的所有科目中,不及格的功课?

数组使用实例课程安排什么是数据的组合数组与维度字符数组与字符串常用字符串处理函数如何把你的名字保存在数组中 //需要用到字符型数组

//顺序将名字中的每个字符保存到数组元素中charname1[]={‘x’,‘n’,‘f’};

为name1分配了多少内存空间?

什么是字符数组能够为整个数组赋值吗?

charname[4];name=“xnf”;?只能为数组元素赋值

charname[3];name[0]=‘x’;name[1]=‘n’;name[2]=‘f’所以还是把赋值放在定义&初始化时吧

charname[]={“xnf”};

字符数组赋值用“”包含起来的字符的集合 如:”xnf”字符串是一个常量字符串默认以字符串结束符’\0’结束‘\0’的ascii编码是多少?=>0!字符串可以为字符型数组变量初始化,将每个字符ascii码值保存到字符数组变量中

什么是字符串?将班级所有学生的姓名保存在一个字符数组中?

实例charstr[10]={0};//从控制台输入字符串scanf(“%s”,&str);gets(str);fgets(str,sizeof(str),stdin);//最安全的方式,避免数组越界//输出字符串到控制台printf(“%s”,str);printf(“stris%s”,str);puts(str);

字符串输入与输出charstr1[20]={0};charstr2[20]={0};str1=“hello”;?str2=“world”;?str1=str2;?str1+str2;?字符串数组可以在初始化时赋值在其他位置赋值需要通过字符串拷贝strcpy和字符串连接strcat函数!strcpy要注意避免数组越界问题,更安全的做法是strncpy!

字符串拷贝与连接charstr1[]={“hello”};str1的长度是多少?str1的内存大小是多少charstr2[]={“heLlo”};str1与str2一样么?如何比较通过sizeof运算符判断字符串占用的内存大小通过strlen函数获取字符串长度,通过strcmp函数比较字符串大小注意:1、strcmp是逐个将2个字符串中的字符ASCII码值逐个比较,全部字符值相同则字符串相等;通常用于用户名、密码登陆等认证场合。

字符串长度与比较上机实验1、学生张三的5门功课成绩为别为80、71、55、93、40,请将他的成绩保存在数组中,并将不及格的成绩找到并打印出来2、学生张三的5门功课成绩为别为80、71、55、93、40;李四的5门功课成绩为别为57、87、59、60、100;王五的5门功课成绩为别为66、59、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论