2014数据结构习字符串1
线性表习题1(顺序串)
说明:
(1)这次的作业任意组合够10分。
(2)如无特殊说明,这里的字符串均为C语言的0字符结尾串!
(3)字符串可能很短,也可能来自一个文本文件,如一篇小说。
(4)除测试部分用printf打印结果外,程序中不得出现任何库函数。
(5)涉及判读字符类型的部分,可以复习一下ASCII码表。
(6)这次的头文件用同一个,C文件一题一个。
Ex04(本题1分):编写字符串检查函数String_Check,查找是否字符串 str 中所有字符都属于字符串 range,如果有字符不属于,返回第一个不属于的字符的指针,否则返回NULL。
Ex05(本题1分):编写字符串插入函数String_Insert,将字符串sub插入到字符串str中,插入位置为pos(从0开始)。假设分配给str的内存空间长度足够。
Ex06(本题1分):上一题,设分配给字符串str的空间有限,为size(字节数,结尾的0字符也算在内),插入后有可能超出,重写该函数,保证不发生非法内存访问。
Ex07(本题1分):编写字符串对齐函数String_Align,将字符串s变为指定长度n的右对齐字符串,结果放在字符数组t中。如果s较短,在左侧填充适当数量的空格。如果s过长,截断右侧超出部分,并在尾部放一个问号“?”。问号算在长度n里。假设分配给t的空间足够。
Ex09(本题2分):写一个函数String_Stat统计在字符串 str 中各个不同字符出现的频度并将每种字符(重复出现的字符算1种)按频度从大到小排序,存放在整数数组 freq_list 中。假设freq_list 空间足够。函数返回值为字符的种类数,也就是 freq_list 的实际长度。
Ex10(本题2分):写函数 String_TestType 按C语言语法规则判断一个字符串的类型,用枚举类型 STRTYPE 表示。类型包括: KEYWORD(关键字)//枚举类型。
IDENTIFIER(标识符)
SYMBOL(符号,指{}[](),;和各种运算符)
NUMBER(数字,只考虑整数,负数前面的负号算SYMBOL,不用考虑)
CHAR(字符常量,用单引号括起来的,不用考虑转义字符) STRINGC(字符串常量,用双引号括起来的,不用考虑转义字符)
Ex11(本题2分):设计文本字符串编码函数String_Encode,
List_SrcCode和List_DstCode是连个线性表,两表中元素均为字符串且一一对应,将String_Encode中所有与List_SrcCode中元素匹配的片段替换为List_DstCode中相应的元素。
Ex12(本题3分):设计一个单行文本匹配函数 String_Match,找出字符串 str 中与表达式 exp 匹配的“第一个”子串,返回子串指针,NULL表示未找到。参数 dir 表示查找方向:dir=+1,正向(头→尾)找;dir=-1,逆向(尾→头)找。表达式 exp 支持通配符:“?”表示任一个字符,“*”表示从该位置开始的0到任意多个任意字符。例如:“abc*”,表示前3个是“abc”,之后为任意多个任意字符;“abc*def”跟“abc*”其实没有任何不同!“abc?”表示前3个是“abc”,之后为某个任意字符。
Ex13(本题5分):设计一个字符串命令解释函数String_Process,按字符串 cmd 给出的命令对字符串 str 进行处理,结果存放在字符数组 result 里。cmd 由一串命令字符组成。4种命令字符如下: “>”:“光标”右移1个字符。“光标”起始位置为0。如果光标已到末尾,再右移无效。
“<”:“光标”左移1个字符。如果“光标”已经到0,再左移无效。 “^”:插入。“^”之后直到下一个命令字符或串尾的字符全部插入 str 中当前位置。插入后光标自动移动到插入部分尾部。
“\”:删除。“\”后跟1个数字n,表示删除当前位置开始的n个字
符。
例如:原本 str = “AA”,经过命令串“^abc<^def>^gh<<\”处理后,经过如下几步(“|”表示光标当前位置,红色代表每执行一步命令后相对前一步的变化):
|AA
^abc
<
abc|AA ab|cAA abdef|cAA abdefc|AA ^def >
^gh
<
<
\ abdefcgh|AA abdefcg|hAA abdefc|ghAA 最后结果: abdefchAA
相关推荐:
- [幼儿教育]【完整版】2019-2025年中国药物发现外
- [幼儿教育]2018-2019年初中信息技术广东初一竞赛
- [幼儿教育]最新外研版(一起)小学英语五年级上册《
- [幼儿教育]农业推广与创新管理专业 -中农大毕业论
- [幼儿教育]2017-2022年中国更年期用药行业市场深
- [幼儿教育]数学1.1.2第1课时棱柱、棱锥和棱台的结
- [幼儿教育]二年级群文阅读课例欣赏
- [幼儿教育]2010-2015年中国保险行业投资分析及深
- [幼儿教育]厄运打不垮的信念第一课时
- [幼儿教育]巧用文本,让表达在言语中绽放论文
- [幼儿教育]中学生百科知识竞赛题及答案
- [幼儿教育]八大菜系英文简介
- [幼儿教育]中国男装牛仔裤市场发展研究及投资前景
- [幼儿教育]远程数字视频监控系统在银行的应用
- [幼儿教育]光纤光缆制造工艺及设备
- [幼儿教育]国家安全法试题及答案
- [幼儿教育]2011高中提前招生及竞赛试题(物理卷1)
- [幼儿教育]宁夏第三产业房地产业、科学研究和技术
- [幼儿教育]中兴通讯 ME3000模块用户硬件设计手册_
- [幼儿教育]紫外线灯管的辐照强度问题
- 苏联东欧剧变的原因和历史教训浅析
- 人工智能导论实验报告(学生)
- 思科ITE章考试原题及答案
- 《学习雷锋好榜样》主题班会教案
- 加油站建设项目安全评价报告
- 剖析社保卡管理系统
- 2017-2018年影视剧新媒体版权运营行业
- 2017-2018学年四川省成都市高一上学期
- 2019最新高中数学 第三章 3.2.1 几类不
- 2011-2015年中国基酸市场调查及行业前
- 人教版新课标选修八Unit 1 课件Warming
- 郭溪燎原小学辅导学生记录表
- 教师资格证统考综合素质写作秘笈
- 国外校园绿色建筑研究方向与建设实践
- 15.1 动物运动的方式 课件(北师大版八
- 民用飞机空调系统
- 长安侠文化传统与唐诗的任侠主题
- 《中国近现代史纲要》名词解释
- 11金本《保险学概论》复习资料
- 民用建筑机电安装工程专业施工图图纸会




