![C++课程设计实验报告---字符串操作.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/14/702165da-8619-4509-94e1-a84dfc45a2ff/702165da-8619-4509-94e1-a84dfc45a2ff1.gif)
![C++课程设计实验报告---字符串操作.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/14/702165da-8619-4509-94e1-a84dfc45a2ff/702165da-8619-4509-94e1-a84dfc45a2ff2.gif)
![C++课程设计实验报告---字符串操作.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/14/702165da-8619-4509-94e1-a84dfc45a2ff/702165da-8619-4509-94e1-a84dfc45a2ff3.gif)
![C++课程设计实验报告---字符串操作.doc_第4页](http://file.renrendoc.com/FileRoot1/2019-1/14/702165da-8619-4509-94e1-a84dfc45a2ff/702165da-8619-4509-94e1-a84dfc45a2ff4.gif)
![C++课程设计实验报告---字符串操作.doc_第5页](http://file.renrendoc.com/FileRoot1/2019-1/14/702165da-8619-4509-94e1-a84dfc45a2ff/702165da-8619-4509-94e1-a84dfc45a2ff5.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京理工大学C+课程设计实验报告姓名 方圆 学号 0511590127 班级 05115901 任课教师 肖亮 时间 2006-9-21 教师指定题目 37:字符串操作 评定难易级别 A 实验报告成绩 .实验内容:字符串操作1.1 程序功能介绍通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首 串尾与子串相同的子符,子串在主串的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所有功能已经经过验证.1.2 程序设计要求(1) 将主函数main()中的输出语句printf()改为VC+中的输出语句。(2) 程序中对字符串的处理函数均使用了字符数组sAns,它占用了大量存储空间,试使用动态分配存储空间的方法改写所有的函数,使之避免使用预先定义的长度很大的数组;并增加类的析构函数,删除动态分配的存储空间.(3) 新增运算符重载函数,重载-,-=运算符,实现字符串的删除操作,并根据返回值判断操作是否成功.(4) 新增成员函数void DelRepeat(),实现在原字符串中删除相邻的重复字符的功能。(5) 新增成员函数int AddStart(FString str,int start),实现将字串str插入到原字符串中从第start字符开始位置上,操作正确返回1.(6) 改写main函数的结构,界面为菜单的形式,根据菜单选项来验证类中所定义的各种成员函数及操作符重载函数的正确性。2. 源程序结构流程框图与说明(含新增子函数的结构框图)字符串操作流程图菜单显示项目选择循环字符串加法字符串减法字符串比较字符串具体操作删除字符串首部相同字符删除字符串尾部相同字符删除字符串所有重复字符字符串的插入操作字符串的替换操作字符串的倒置替换操作开始选择判断退出退出132254513467选择 错误输入重选3. 基本数据结构 class FString / 字符串类定义private:char*sString;int nLength; /新增成员数据,是字符串对象的长度/String data must be first (to look like string)public:/ConstructorFString(); /缺省构造 FString(char *str)nLength=strlen(str);str=new charnLength+1;strcpy(sString,str); /新增构造函数,用字符串常量初始话字符串对象FString(FString &); /新增拷贝的构造函数,用类的对象初始化FString()if(sString)deletesString; /新增析构函数,释放字符串对象所占用的空间void DelRepeat(); /新增成员函数,删除原字符串中相邻的重复字符 int AddStart(FString str,int start); /*新增成员函数,将字符串str插入到原字符串中从第start字符串开始位置上,操作正确返回1*/inline FString operator-(const char *sAppend); /新增函数,重载减法运算符 inline FString operator-(const FString sAppend); /新增函数,重载减法运算符inline FString operator-=(char* val); /新增函数,重载减法运算符inline FString operator-=(FString val); /新增函数,重载减法运算符FString Mid(const int nStart,const int nLength); /从字串sString中第nStart个字符开始取出nLength个字符FString Left(const int nLength); /从字串sString左边取出nLength个字符FString Right(const int nLength); /从字串 sString 右边取出 nLength 个字符int InStr(const int nStart, const char *sSearch,const bool bCaseSensitive=true);int InStrRev(const int nStart, const char *sSearch,const bool bCaseSensitive=true);FString RTrim(const char sChar= );FString LTrim(const char sChar= );FString Trim(const char sChar= );FString Replace(const char *sSearch, const char *sReplace);FString Format(const char *sFormat, .); /参数可变的函数int Length();/Various Operatorsinline operator char*(); /转换函数inline FString operator+(const char *sAppend); /新增函数,重载加法运算符inline FString operator+(const FString sAppend); /新增函数,重载加法运算符inline char operator(const int nIndex); /数组下标运算符重载inline FString operator+=(char* val); /新增函数,重载加法运算符inline FString operator+=(FString val); /新增函数,重载加法运算符/Comparison Operatorsinline int operator(const char *val);inline int operator(const char *val);inline int operator=(const char *val);inline int operator!=(const char *val);inline int operator=(const char *val);inline int operator(const FString val);inline int operator(const FString val);inline int operator=(const FString val);inline int operator!=(const FString val);inline int operator=(const FString val);/Assignment OperatorsFString operator=(const char *val);FString operator=(const FString val);4. 程序运行结果界面 图1、初始界面 图2、字符串加法 图3 、字符串减法 图4 、字符串比较大小 图5、对字符串的具体操作 图6、删除字符串首部相同的字符 图7、字符串的插入操作 图8、字符串的替换操作 图9、字符串的倒置替换操作5. 课程设计遇到的技术问题与解决思路 问题1: 在菜单选择时,若输入字符则会出现死循环。解决办法: 将定义为整型输入变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《个人浮力设备+第9部分:试验方法gbt+32234.9-2023》详细解读
- 提升学生全面素质发展的教学创新计划
- 健全教师评价体系促进教师专业成长三篇
- 定期检查学科教学进度三篇
- 组织并协调会议室及会议资源的预订与安排三篇
- 志愿者招募与培训招募志愿者并进行培训增加工作力量和专业能力三篇
- 仓库整体打包出售合同
- 合同结算单正确写法
- 公会合同续签协议书
- 话务人员劳务外包合同
- 江苏省泰州市海陵区2023-2024学年六年级下学期期末数学试卷
- 河南省信阳市平桥区2023-2024学年七年级下学期期末数学试题
- 新修订《纪律处分条例》学习考试题库200题(含单选、多选、判断题)
- 四川省凉山州2022-2023学年八年级下学期期末英语试题
- 2024年四川省南充市中考生物试卷真题(含官方答案)
- 公司差旅费报销规定
- 江苏省徐州市2022-2023学年一年级下学期语文期末试卷(含答案)
- 2024年湖北黄石市检察机关招聘雇员制检察辅助人员47人历年公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版
- 热点05 杭州亚运会-备战2024年中考地理热点专题解读与训练(解析版)
- 肺血管炎课件
- 2024年全国物业管理员技能竞赛理论备考试题库500题(含答案)
评论
0/150
提交评论