资源描述:
《c课程设计字符串操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、C++课程设计实验报告字符串操作仁程序功能简介:通过多种成员函数的定义和运算符的重载,实现字符串的各种直接操作,如:去掉串首串尾与子串相同的子符,子串在主串的定位,用新子串更换主串中的指定子串,比较字符串的大小,字符串连接等,所有功能已经经过验证.2、课程设计的要求:(1)将主函数mainO中的输出语句printfO改为VC++中的输岀语句。(2)程序屮对字符串的处理函数均使用了字符数组sAns,它占用了大量存储空间,试使用动态分配存储空间的方法改写所有的函数,使之避免使用预先定义的长度很大的数组;并
2、增加类的析构函数,删除动态分配的存储空间.(3)新增运算符垂载函数,重载-,-二运算符,实现字符串的删除操作,并根据返回值判断操作是否成功.(4)新增成员函数voidDelRepeatO,实现在原字符串中删除相邻的重复字符的功能。(5)新增成员函数intAddStart(FStringstr,intstart),实现将字串str插入到原字符串中从第start字符开始位置上,操作正确返冋1.(6)改写main函数的结构,界面为菜单的形式,根据菜单选项来验证类中所定义的各种成员函数及操作符重载函数的正确性
3、。3、程序设计思想:1)类的数据结构原函数定义了大量的成员函数和运算符重载函数,但这些函数都是在固定的空间的字符数组的前提下实现的,课程设计要求所有的函数利用动态分配存储空间的方法存储字符串对像,所以基本上类中所有的函数都要垂新编写,类中的数据成员增加一项字符吊的长度intnLength,这样,动态分配存储空间的操作就可以简便一些char*p=newchar[nLength+l];参考的类结构如下:classFString{//字符串类定义private:char*sString;intnLength
4、;//新增成员数据,是字符串对彖的长度//Stringdatamustbefirst(tolooklikestring)public://ConstructorFStringO;//缺省构造FString(char*str){nLength=strlen(str);str二newchar[nLength+1];strcpy(sString,str)汀;//新增构造函数,用字符串常量初始话字符串对象FString(FString&);//新增拷贝的构造函数,用类的对象初始化"FStringO{if(sS
5、tring)delete[jsString;};//新增析构函数,释放字符串对象所占用的空间voidDelRepeat();//新增成员函数,删除原字符串中相邻的重复字符intAddStart(FStringstr,intstart);//*新增成员函数,将字符串str插入到原字符串中从笫start字符串开始位置上,操作正确返回1*/inlineFStringoperator-(constchar*sAppend);〃新增函数,重载减法运算符inlineFStringoperator-(constFS
6、tringsAppend);//新增函数,重载减法运算符inlineFStringoperator-=(char*val);inlineFStringoperator-=(FStringval);FStringMid(constintnStart,constnStart个字符开始取岀nLength个字符FStringLeft(constintnLength);个字符FStringRight(constintnLength);个字符intInStr(constintnStart,bCaseSensiti
7、ve=true);intTnStrRev(constintnStart,bCaseSensitive二true);FStringFStringFStringFStringFStringintRTrim(constcharsChar=,');LTrim(constcharsChar=,');Trim(constcharsChar=,');Replace(constchar*sSearch,//新增函数,重载减法运算符〃新增函数,重载减法运算符nLength);//从字串sString中第//从字串sSt
8、ring左边取出nLength//从字串sString右边取出nLengthconstchar*sSearch,constboolconstchar*sSearch,constboolFormat(constchar*sFormat,…);intLength();//VariousOperatorsin1ineinline加法运算符inline加法运算符in1ine载inline法运算符constchar*sReplace);//参数可变的函数opera