《C语言程序设计》上机报告08.doc_第1页
《C语言程序设计》上机报告08.doc_第2页
《C语言程序设计》上机报告08.doc_第3页
《C语言程序设计》上机报告08.doc_第4页
《C语言程序设计》上机报告08.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

上机08 数组(3)字符数组和字符串上机课时课内:2课时;课外:2课时上机类型验证性上机上机目的1. 掌握C语言字符数组的定义、初始化和引用。2. 掌握C语言字符数组和字符串的联系和区别。3. 掌握C语言字符串函数的使用。上机内容1. 字符数组用来存放字符类型变量的数组称为字符数组。(1) 字符数组的定义形式与前面介绍的数值数组相同。例如: char c10;字符数组也可以是二维或多维数组。例如: char c510;(2) 字符数组的初始化字符数组也允许在定义时作初始化赋值。例如: char c10=c, , p, r, o, g, r, a,m;赋值后各元素的值为: c0的值为c c1的值为 c2的值为p c3的值为r c4的值为0 c5的值为g c6的值为r c7的值为a c8的值为m其中c9未赋值,由系统自动赋予0值。当对全体元素赋初值时也可以省去长度说明。例如: char c=c, , p, r, o, g, r, a, m ;这时C数组的长度自动定为9。(3) 字符数组的引用字符数组和普通数组一样,也是通过下标引用。2. 字符串和字符串结束标志在C语言中没有专门的字符串,通常用一个字符数组来存放一个字符串。字符串总是以0作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符0存入数组,并以此作为该字符串是否结束的标志。有了0标志后,就不必再用字符数组的长度来判断字符串的长度了。C语言允许用字符串的方式对数组作初始化赋值。例如:方法1:char c=c, ,p,r,o,g,r,a,m; /一个一个字符初始化方法2:char c=C program;/用字符串常量给字符数组初始化方法3: char c=C program;/ 可省略用字符串方式赋值比用字符逐个赋值要多占一个字节, 用于存放字符串结束标志0。上面的数组c在内存中的实际存放情况为:0是由C编译系统自动加上的。由于采用了0标志,所以在用字符串赋初值时一般无须指定数组的长度, 而由系统自行处理。3. 字符数组的输入输出在采用字符串方式后,字符数组的输入输出将变得简单方便。除了上述用字符串赋初值的办法外,还可用printf函数和scanf函数一次性输出输入一个字符数组中的字符串,而不必使用循环语句逐个地输入输出每个字符。字符数组可以使用 scanf() 从控制台输入一个字符串,然后使用 printf() 将其输出。具体格式为: scanf(%s,数组名);/注意:这里没有取地址&符号,因为数组名代表数组的起始地址printf(%s,数组名);注意: 定义一个字符数组时如果不作初始化赋值,则必须说明数组长度。 还应该特别注意的是,当用scanf函数输入字符串时,字符串中不能含有空格,否则将以空格作为串的结束符。上机任务1任务要求完成后的代码填写到下面表格定义一个一维字符数组,尽量用多种方法对该字符数组进行以下操作:(1) 定义同时初始化(三种方法);(2) 先定义,再从键盘输入该字符数组;(3) 输出该字符数组。例如输出结果为:we are learning C language. 4. 字符串函数C语言提供了丰富的字符串处理函数,大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。 使用这些函数可大大减轻编程的负担。用于输入输出的字符串函数,在使用前应包含头文件stdio.h,使用其它字符串函数则应包含头文件string.h。下面介绍几个最常用的字符串函数。更多函数请参考课本后面的附录。(1) 字符串输入和输出函数字符串输入函数 gets格式: gets (字符数组名)功能:从标准输入设备键盘上输入一个字符串。返回值:本函数得到一个函数值,即为该字符数组的首地址。字符串输出函数 puts格式: puts(字符数组名)功能:把字符数组中的字符串输出到显示器。 即在屏幕上显示该字符串。这样我们又多了一种字符串输入和输出的方法。上机任务2任务要求完成后的代码填写到下面表格(1) 将上机任务1进行改写,用gets和puts进行字符数组的输入和输出。(2) 自己总结一下字符数组的不同的初始化、输入和输出的方法。做到灵活运用。例如输出结果为:we are learning C language. (2) 字符串连接函数 strcat格式: strcat(字符数组名1,字符数组名2)功能:把字符数组2中的字符串连接到字符数组1 中字符串的后面,并删去字符串1后的串标志“0”。注意要确保字符数组1的长度足够长能容纳字符数组2。返回值:本函数返回值是字符数组1的首地址。上机任务3任务要求完成后的代码填写到下面表格定义两个字符数组,然后将这两个字符数组连接起来,并输出结果。例如输出结果为:Hello!My name is ( your name).进一步思考:你能定义多个字符数组并把他们连接起来并输出吗?(3) 字符串拷贝函数strcpy格式: strcpy(字符数组名1,字符数组名2)功能:把字符数组2中的字符串拷贝到字符数组1中。串结束标志“0”也一同拷贝。字符数名2,也可以是一个字符串常量。这时相当于把一个字符串赋予一个字符数组。上机任务4任务要求完成后的代码填写到下面表格定义两个字符数组,然后将其中一个字符串复制到另一个字符串中去,并输出结果。(4) 字符串比较函数strcmp格式: strcmp(字符数组名1,字符数组名2)功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。 字符串1字符串2,返回值0; 字符串2字符串2,返回值0; 字符串1字符串2,返回值0。上机任务5任务要求完成后的代码填写到下面表格定义两个字符数组,然后比较这两个字符数组的大小,并输出比较结果。(5) 测字符串长度函数strlen格式: strlen(字符数组

温馨提示

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

评论

0/150

提交评论