這篇文章主要介紹了C++怎么實現(xiàn)文本編輯器,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是專業(yè)的赫章網(wǎng)站建設公司,赫章接單;提供網(wǎng)站設計制作、做網(wǎng)站,網(wǎng)頁設計,網(wǎng)站設計,建網(wǎng)站,PHP網(wǎng)站建設等專業(yè)做網(wǎng)站服務;采用PHP框架,可快速的進行赫章網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!具體內(nèi)容如下
1.簡易文本編輯器
2.用鏈表實現(xiàn),保存到文件中
#include#include #include #include #include #include using namespace std; int NumberCount=0;//數(shù)字個數(shù) int CharCount=0;//字母個數(shù) int PunctuationCount=0;//標點符號個數(shù) int BlankCount=0;//空白符個數(shù) 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;//可更改的行數(shù) int length;//行數(shù) 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<<(ostream& out,TextEditor &text); Node* Gethead(){ return head; } //int GetLength() //{ // return length; // } // int FindText(string s); // void DeleteText(int seat,string s); }; TextEditor::TextEditor() { head=NULL; name="test";//文件初始名 //tail=NULL; line=1; length=0; } TextEditor::~TextEditor() { Node* p=head; Node* q; while(p!=NULL){ q=p->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+1 next!=NULL&&i next; i++; } } if(offset>p->character.length()){ cout<<"移動位置太大!"< cursor+=offset; //cout<<"p ->cursor="< cursor< cursor; } int TextEditor::SetCursor(int line,int offset) { this->line=line; //cout<<"line="< 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+1 next!=NULL&&i next; i++; } } //MoveCursor(seat); //cout<<"p->cursor="< cursor< character.length();i++) substr+=p->character[i]; p->character.insert(p->cursor,s); cout<<"substr="< cursor=0;//光標清零 } ostream& operator<<(ostream& out,TextEditor &text) { int i=1; Node* p=text.Gethead(); while(p!=NULL){ out< character< next; } // cout<<"length="< character.length(); while(q!=NULL){ p=0; t=0; tlen=q->character.length(); if(tlen next; } while(p character[t]==P[p]){ t++; p++; } else{ t=t-p+1; p=0; } } // cout<<"P="< =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<<"未出現(xiàn)該字符串!"<
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]<'z'||p->character[i]>'A'&&p->character[i]<'Z') CharCount++; else if(ispunct(p->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<<"請輸入字符:"; getline(cin,s,'\n'); text.AddText(s); break; case 2: cout<<"請輸入文檔名字:"; cin>>name; text.SetName(name); break; case 3: cout< >i; cout<<"光標在第"< >j; cout<<"輸入插入字符:"; getchar(); getline(cin,s); text.InsertText(text.SetCursor(i,j),s); break; } case 6: { cout<<"輸入查找的字符串:"; getline(cin,s); int k=text.FindText(s); if(k==-1) cout<<"查找失敗!"< character< next; } exit(0); break; } default: cout<<"輸入錯誤,請重新輸入!"< 感謝你能夠認真閱讀完這篇文章,希望小編分享的“C++怎么實現(xiàn)文本編輯器”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)建站,關注創(chuàng)新互聯(lián)網(wǎng)站建設公司行業(yè)資訊頻道,更多相關知識等著你來學習!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章名稱:C++怎么實現(xiàn)文本編輯器-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://weahome.cn/article/cdpecd.html