已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9讲字符型数组及应用 第 讲字符型数组及应用 本讲主要内容字符数组的定义及初始化字符串输入输出操作常用的字符串操作函数字符型数组的应用 第 讲字符型数组及应用 教学目标掌握字符串的输入输出方法 熟悉常用的字符串操作函数 学会使用字符数组解决实际问题的基本方法 能用一维字符数组和二维字符数组解决简单的实际问题 一 字符数组的定义 初始化 字符数组的定义字符型数组是数据类型为字符型的数组 用于存放字符数据 每一个元素存放一个字符 字符型数组与数值型数组在本质上没有区别 但在具体使用时 还是有其自身的特点 因此对字符型一维数组的初始化进行专门的介绍 定义格式如下 char数组名 数组长度 例如 chararray 10 一 字符数组的定义 初始化 字符数组的初始化 对字符数组初始化时 通常使用转义字符常量 0 作为末尾元素值 例如 charstring 8 e x a m p l e 0 可以使用一个字符串常量为字符数组赋初值 例如 上述对数组string的定义可使用如下形式 charstring 8 example 初始化时 省略对数组长度的说明后 数组的实际长度由系统根据初始化的形式确定 例如 charstring example 二 字符串输入输出操作 用 c 格式符输入输出字符串 例7 3输入20个字符 分别统计其中的数字个数和其他字符的个数 二 字符串输入输出操作 case 2 case 3 case 4 case 5 case 6 case 7 case 8 case 9 number break default other printf number d other d n number other main chars 20 inti number 0 other 0 printf Inputastring for i 0 i 20 i scanf c i switch s i case 0 case 1 二 字符串输入输出操作 用 s 格式符输入输出字符串 例如 charc 6 scanf s c printf s c 说明 C语言中 数组名代表该数组的起始地址 因此 scanf 函数中数组名前不再加地址运算符 二 字符串输入输出操作 输出字符串函数puts 格式 puts 字符数组名 功能 输出存储在字符数组中的字符串 例如 charc 6 China puts c 结果 China 二 字符串输入输出操作 输入字符串函数gets 格式 gets 字符数组名 功能 从键盘输入一个字符串 并存储在指定数组中 例如 charstr 12 gets str 执行gets 函数后 系统等待从键盘输入一个字符串 三 常用的字符串操作函数 连接字符串函数strcat 格式 strcat s1 s2 功能 把字符串s2连接到字符串s1的后面 其中 s1 s2既可以是字符数组名 也可以是字符串常量 三 常用的字符串操作函数 例7 5字符串连接main charc1 10 China c2 10 man strcat c1 c2 printf Stringc1 puts c1 输出字符串c1 printf Stringc2 puts c2 输出字符串c2 三 常用的字符串操作函数 复制字符串函数strcpy 格式 strcpy s1 s2 功能 把字符串s2复制到字符数组s1中 说明 s1只能是字符数组名或字符数组的开始地址 s2可以是数组名 也可以是一个字符串 三 常用的字符串操作函数 例7 6字符串复制 程序e706 c include stdio h main charc1 20 program c2 10 example strcpy c1 c2 printf Stringc1 puts c1 printf Stringc2 puts c2 三 常用的字符串操作函数 字符串比较函数strcmp 格式 strcmp s1 s2 功能 比较字符串s1和字符串s2的大小 s1与s2相同时 strcmp s1 s2 的值为0 s1大于s2时 strcmp s1 s2 的值为一个正数 s1小于s2时 strcmp s1 s2 的值为一个负数 字符串比较就是比较字符串中字符的ASCII码 ASCII码值大的字符串大 比较的方法是对两个字符串自左至右逐个字符比较 直到遇到不同字符或 0 时比较过程结束 此时 ASCII码值大的字符所在的字符串大 四 字符型数组的应用 例8 3输入一行字符 统计其中单词的个数 设长度是n的字符串已存储在字符数组text中 各字符元素分别为text 0 text 1 text 2 text n 1 当检测text i i 0 时 若满足下列条件 则必然出现新单词 text i 1 text i 四 字符型数组的应用 main chartext 100 intword i gets text if text 0 word 0 elseif text 0 0 word 1 i 1 while text i 0 if text i 1 四 字符型数组的应用 例8 4判断s2是否是s1的子串 基本思路 从s1字符串的第一个字符开始 依次与s2字符串的各字符比较 若均相同 则s2是s1的子串 否则再从s1的下一个字符 第2个字符 开始 依次与s2字符串的各字符比较 设k1 k2分别表示s1串和s2串的长度 则最后一次应从s1的第k1 k2 1个字符开始 即s1 k1 k2 依次与s2字符串的各字符比较 若存在不同字符 则s2肯定不是s1的子串 四 字符型数组的应用 main chars1 80 s2 80 inti 0 j k k1 k2 flag gets s1 gets s2 k1 strlen s1 k2 strlen s2 flag 0 while i k1 k2 1 字符型数组及应用 小结 本单元通过7个实例介绍了一维数组和二维数组的应用知识 使用数组解决问题的一般过程总结如下 定义大小合适的数组 为了方便数组长度调整和程序调试 通常将数组的长度值首先定义为符号常数 然后再用于数组定义中 为数组输入数据 数组元素
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 助研费协议书
- 2025年RISC-VWi-Fi7控制器设计考核试卷
- 什么协议书不能签字盖章
- 协议书标准网
- 苹果充电线 协议书
- 资源股合作分红协议书
- 赔偿协议书无法履行
- 2025年乡村医生基本公共卫生服务规范老年人健康管理新指标操作应用综合强化考核试卷
- 2025年碳排放权交易市场南非规则解读实务考核试卷
- 2025年科技行业创新创业水平考试-精准医学诊断技术考核试卷
- 【MOOC】计算机网络-华南理工大学 中国大学慕课MOOC答案
- 事故隐患内部举报奖励制度
- 统编版中考语文一轮复习:义务教育语文课程常用字表(3500字注音版)(2022版课标)
- 电力设备跨国运输合同
- (浙教2024版)科学七年级上册全册知识点(新教材)
- 卫生室医疗质量与安全管理领导小组、工作计划、管理制度
- CESA-2021-3-005《半导体集成电路 光互连接口技术要求》团体标准 征求意见稿
- 2024年系统集成项目实施方案
- 指数函数的概念与图象
- 皮肤科护理中的温泉疗法在皮肤病管理中的应用
- 成品入库与出库管理流程培训课件
评论
0/150
提交评论