问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用string类,编写一个简单的文本编辑程序,能够实现基本的插入、删除、查找、替换等功能

发布网友 发布时间:2022-05-21 08:36

我来回答

1个回答

热心网友 时间:2023-10-21 00:14

#include<iostream> #include<string> class String //定义简单字符串类 { int length; char*contents; public: ~String(){delete contents;} //析构函数 int Getlength(){return length;} //计算字符串长度 char*Getcontents(){return contents;} //获取字符串内容 int Setcon(char*con); //置字符串,修改字符,重载Setcon() void Print(){cout<<contents<<endl;} //输出字符串 }; class Editstring:public String //定义编辑字符串类 { int cursor; //光标位置 public: int Getcursor(){return cursor;} //获取当前光标位置 void Movecur(int num){cursor=num;} //移动光标 int Instr(String *newtext); //在光标所在位置插入新字符串 int Replstr(String *newtext); //在光标所在位置用新字符串替换 void Delstr(int num); //在光标所在位置开始删除num个字符 }; int string::Setcon(char*con) //类外定义Setcon函数 { length=strlen(con); //求字符串con的长度 if(!contents) delete contents; //若字符串已有内容,则先删除 contents=new char[length+1]; //为字符串分配存储 strcpy(contents,con); //字符串赋值 return length; } int Editstring::Instr(String*newtext) //类外定义Instr函数 { int el,k,sl; char*sp,*ep; el=newtext->Getlength(); ep=newtext->Getcontents(); sl=Getlength(); sp=Getcontents(); char*news=new char[el+sl+1]; for(int i=0;i<cursor;i++) news[i]=sp[i]; //将当前光标之前的内容赋值给news k=i; for(int j=0;j<el;i++,j++) news[i]=ep[i]; cursor=i; for(j=k;j<sl;i++,j++) news[i]=sp[j]; news[i]='\0'; Setcon(news); delete news; return cursor; } int Editstring::Replstr(String*newtext) //类外定义Replstr函数 { int el,sl; char*ep,*news; el=newtext->Getlength(); ep=newtext->Getcontents(); sl=Getlength(); news=new char[sl>el+cursor?sl+1:el+cursor+1]; news=Getcontents(); for(int i=cursor,j=0;i<el+cursor;i++,j++) news[i]=ep[i]; if(sl<el+cursor) news[i]='\0'; cursor=i; Setcon(news); delete news; return cursor; } void Editstring::Delstr(int num) { int sl; char*sp; sp=Getcontents(); sl=Getlength(); for(int i=cursor;i<sl;i++) sp[i]=sp[i+num]; sp[i]='\0'; } void main() { String s1; //定义简单字符串对象s1 Editstring s2; //定义编辑字符串类对象s2 char*cp,n,n1; //n为起始输入字符串,n1为要修改的字符串 int m,m1; //m为光标位置,m1为字符个数 cout<<"请输入一个字符串:"; cin>>n; s1.Setcon(n) //为s1赋值 cout<<"s1的内容:"; s1.Print(); cp=s1.Getcontents(); //将对象s1的内容赋值给cp es=s2.Setcon(cp); //将cp内容赋给es cout<<"s2的内容:"; s2.Print(); //输出es的内容 cout<<"请输入移动光标到达的位置:"; cin>>m; s2.Movecur(m); //移动光标位置到m cout<<"请输入要修改的字符串内容:"; cin>>n1; s1.Setcon(n1); //修改s1对象的字符串内容 s2.Instr(&s1); //将s1对象的内容插入到es对象中 cout<<"s1的内容:"; s1.Print(); cout<<"插入后的结果:"<<endl; s2.Print(); //显示es内容 cout<<"请输入移动光标到达的位置:"; cin>>m; s2.Movecur(m); //移动光标位置到m cout<<"请输入要删除的字符串个数:"; cin>>m1; s2.Delstr(m1); //在当前光标处删除m1个字符 cout<<"删除后结果:"<<endl; s2.Print(); cout<<"请输入要修改的字符串内容:"; cin>>n1; s1.Setcon(n1); //修改s1对象的字符串内容 s2.Replstr(&s1); cout<<"s1内容:"; s1.Print(); cout<<"替换后的结果:"; s2.Print(); }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
手机玻璃硬度是多少合适 ips屏幕硬度怎么样 手机硬度是什么意思? 2024年拼多多春节发货时间规定是什么?过年还要48小时发货吗? e元素e8100无线鼠标怎么使用 E元素X-8100靠谱吗?可以用几年? E元素X-8100现在有几种配色,哪一种配色好呢? E元素X-8100用的是什么色的轴,适合玩游戏吗? 浙c是哪个城市 浙c是哪里 榻榻米软包怎么安装 七岁小男孩一米二左右,穿多大码衣服 dior addict 系列什么特点 553 lipstick 传奇归来红唇怎么得到,~!!! 传奇归来红唇是什么意思 迪奥999和n°999和999#传奇红唇有什么区别 小白鞋为什么被时尚达人称作百搭单品? dior999滋润版叫什么 为什么我买的迪奥999扫码出来显示29块钱 迪奥传奇红唇哑光999 韩国v7素颜霜怎么涂不开? 幼儿园交通安全属于什么领域 switch from to 学校开运动会要什么体育器材 switch to next preset什么意思 switch to another language什么意思? the switch to sth.是什么意思啊 switch to doing还是do switch to doing sth什么意思? switch to 等于begin to use吗 switch to和switch from什么意思 如何用txt文件编辑简单的程序,比如删除d盘的D.exe文件。 闪亮爸爸是什么时候拍的? 求好心人分享闪亮的爸爸第1季免费在线观看资源 闪亮的爸爸和爸爸去哪儿什么关系 综艺节目大全,赵丽颖参加过哪些? 中华人民共和国教育法的社会作用包括哪些 最早的一部电视剧里面他家有三个孩子,他爸是木匠,最后他家来了个漂 ... 一部外国的电影,一位父亲和他女儿,功夫都很厉害,女儿只有13岁左右,长的很漂亮,这部电影叫什么 小时候看的一部欧洲贵族的电影,父亲和他妻子是贵族,后来知道父亲也不是亲的,女主人公很漂亮,去寻找谁 有一部言情小说,女主是黑道人物的女儿,后来继承父亲的事业,名字好像叫“琳山”,长得很漂亮。跟男主在 一部美国电影,讲一个人偷开爸爸的出租车出去邂逅一个漂亮妹子,*后妹子被杀,*认定他是凶手 有一部外国电影,一个父亲的遗产被一个漂亮女人诱走,他女儿和女儿的男朋友去追? 一部言情小说,女主很聪明,但不是很漂亮,男主是黑道老大的儿子,和父亲关系不好,题目里好像有黑马王子 爸爸去哪儿第三季第四期,村长给小朋友带的帽子是什么,就是说假话会亮的帽子 lol全金属狂潮维克托有特效么? 在5G时代下,共享单车的命运究竟会怎么样? 不灭金生:共享单车前景 你怎么看? 宾得k50怎样使用多点对焦 单反500D怎么多点对焦,拍摄人像怎么调。拍摄达物怎么调 iPhone 6plus扬声器时好时坏,手机店说是尾插问题,只要扬声器正常就没事,但扬声器一没声音