C++课程设计报告
               
题目:字符串操作
学号:xxxxxxx
             
姓名:xx
:程序功能简介
  1.通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作。比如:去掉串首、串尾与子串相同的字符,子串在主串中的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所以功能已经经过验证。
·:程序设计思想
  1.原程序定义了大量的成员函数和运算符重载函数,但是这些函数都是在固定的字符数组的前提下实现的,课程设计要求所有的函数要利用动态分配存储空间的方法存储字符串对象,所以基本上类中所有函数都要重新编写,类中的数据成员增加一项字符串的长度int nLength,这样,动态分布存储空间的操作就可以简单一些char *p=new char[nLength+1];
  2.main函数采用了菜单选项的形式来实现类中的各个功能,显示菜单如下:1.字符串加法
2.字符串减法
3.字符串比较大小
4.对字符串的具体操作
  1).删除字符串首部相同字符
  2).删除字符串尾部相同字符
  3).删除字符串的所有重复字符
  4).字符串的插入操作
  5).字符串的替换操作
  6).字符串的倒置替换操作(首先寻倒置的子串,再用一个新的字符串替换该子串)
  7).退出
5.退出
3.在程序中分别新增了一些运算符重载函数和其他函数。
    inline FString operator-(const char *sAppend);//新增函数,重载减法运算法
    inline FString operator-(const FString sAppend);//新增函数,重载减法运算法
  inline FString operator-=(char *val);//新增函数,重载-=运算符
    inline FString operator-=(FString val);//新增函数,重载-=运算符
由于程序中的处理函数使用了字符数组sAns,它占用了大量的存储空间,为了避免使用预先定义的长度很大的数组,增加了新的析构函数~FString(){} 释放了字符串对象所占用的空
间,删除了动态分配的存储空间。新增了构造函数,用于字符串常量初始化字符串对象。
三:调试过程。
在调试过程中遇到一个困扰我很久的问题,一直有一个local function definitions are illegal。就是一类问题始终出现,刚开始我觉得可能是有分号输入错误,然后我就查了一下全部的分号。查的结果是没有错误。于是,我就排除了这方面的原因。然后我开始分部分查错误,编译。局限到具体的小部分时候,就可以很好的排查了!结果在小的方面出错了,少了对应的一个大括号。
:输入输出数据
输入: 第一组:godlike  kill
  输出:1.字符串加法  godlikekill
      2.字符串减法  godlike
      3.字符串不比较大小  ‘godlike’<‘kill’
      4. 对字符串的具体操作  1). 删除字符串首部相同字符  godlike
c++课程设计报告                            2). 删除字符串尾部相同字符  godlike
                            3). 删除字符串的所有重复字符  godlike
                            4). 字符串的插入操作 插入位置3  插入字符串ree  结果  goreedlike
                            5). 字符串的替换操作 用kill替换like  结果 godkill
输入:第二组:  uusee  look

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。