c语言用链串实现文本编辑器,C++实现简易文本编辑器分享!

本文实例为大家分享了C++实现文本编辑器的具体代码,供大家参考,具体内容如下

1.简易文本编辑器

2.用链表实现,保存到文件中

#include #include #include #include #include #include using namespace std; int NumberCount=0;//数字个数 int CharCount=0;//字母个数 int PunctuationCount=0;//标点符号个数 int BlankCount=0;//空白符个数 class Node { public: string character; int cursor; int offset; Node* next; Node(){ cursor=0;//每行的光标初始位置 offset=0;//每行的初始偏移位置 next=NULL; } }; class TextEditor { private: Node* head; string name; int line;//可更改的行数 int length;//行数 public: TextEditor(); ~TextEditor(); string GetName(); void SetName(string name); int GetCursor(); int MoveCursor(int offset); int SetCursor(int line,int offset); void AddText(const string s); void InsertText(int seat,string s); int FindText(string s); void DeleteText(string s); int GetLine(); void Count(); friend ostream& operator<next; delete p; p=q; } } int TextEditor::GetLine() { return line; } string TextEditor::GetName() { return name; } void TextEditor::SetName(string name) { this->name=name; } int TextEditor::GetCursor() { Node *p=head; while(p->next!=NULL) p=p->next; return p->cursor; } int TextEditor::MoveCursor(int offset) { Node *p=head; int i=1; if(length+1next!=NULL&&inext; i++; } } if(offset>p->character.length()){ cout<cursor+=offset; //cout<cursor="<cursor<cursor; } int TextEditor::SetCursor(int line,int offset) { this->line=line; //cout<line<character=s; p->next=NULL; if(head==NULL) head=p; else{ while(q->next!=NULL) q=q->next; q->next=p; } length++; // line++; } void TextEditor::InsertText(int seat,string s) { Node *p=head; int i=1; if(length+1next!=NULL&&inext; i++; } } //MoveCursor(seat); //cout<cursor="<cursor<character.length();i++) substr+=p->character[i]; p->character.insert(p->cursor,s); cout<cursor=0;//光标清零 } ostream& operator<character<next; } // cout<character.length(); while(q!=NULL){ p=0; t=0; tlen=q->character.length(); if(tlennext; } while(pcharacter[t]==P[p]){ t++; p++; } else{ t=t-p+1; p=0; } } // cout<=plen){ return t-plen+1; } else{ line++; q=q->next; } } return -1; } void TextEditor::DeleteText(string s) { Node *p=head; int i=1; int k=FindText(s); if(k==-1) cout<next; // cout<character<character.erase(k-1,s.length()); cout<character.length();i++){ if(p->character[i]>='0'&&p->character[i]<='9') NumberCount++; else if(p->character[i]>'a'&&p->character[i]character[i]>'A'&&p->character[i]character[i])) PunctuationCount++; else if(p->character[i]==' ') BlankCount++; } p=p->next; } } int main() { int i,j,k,n=2; string s,t,name; TextEditor text; cout<>n; getchar(); switch(n){ case 1: cout<>name; text.SetName(name); break; case 3: cout<>i; cout<>j; cout<character<next; } exit(0); break; } default: cout<

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

—-想了解C++实现简易文本编辑器分享!全部内容且更多的C语言教程关注

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/c-cyuyankaifa/484224.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值