⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shiti3_5_1.cpp

📁 为初学者提供的最佳的C++程序设计源程序库
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
class String
{
public:
	~String(){delete[]str;}
	int Setstr(int l,char *s);
	int Setstr(char *s);
	int Getlen(){return len;}
	char *Getstr(){return str;}
	void Print(){cout<<str<<endl;}
private:
	int len;
	char *str;
};
class EditString:public String
{
public:
	void MoveCursor(int off){cursor=off;}
	int Add(String *s);
	int Replace(String *s);
	void Delete(int pos);
	int GetCursor(){return cursor;}
private:
	int cursor;
};
int String::Setstr(int l,char *s)
{
	len=l;
	if(!str)delete str;
	str=new char[len+1];
	strcpy(str,s);
	return len;
}
int String::Setstr(char *s)
{
	len=strlen(s);
	if(!str)delete str;
	str=new char[len+1];
	strcpy(str,s);
	return len;
}
int EditString::Add(String *s)
{
	int n,k,m;
	char *cp,*pt;
	n=s->Getlen();
	pt=s->Getstr();
	cp=this->Getstr();
	m=this->Getlen();
	char *news=new char[n+m+1];
	for(int i=0;i<cursor;i++)
		news[i]=cp[i];
	k=i;
	for(int j=0;j<n;i++,j++)
		news[i]=pt[j];
	cursor=i;
	for(j=k;j<m;j++,i++)
		news[i]=cp[j];
	news[i]='\0';
	Setstr(news);
	delete news;
	return cursor;
}
int EditString::Replace(String *s)
{
	int n,m;
	char *pt,*news;
	n=s->Getlen();
	pt=s->Getstr();
	m=this->Getlen();
	news=new char[m>n+cursor?m+1:n+cursor+1];
	news=this->Getstr();
	for(int i=cursor,j=0;i<n+cursor;j++,i++)
		news[i]=pt[j];
	if(m<n+cursor)news[i]='\0';
	cursor=i;
	Setstr(news);
	delete news;
	return cursor;
}
void EditString::Delete(int pos)
{
	int m;
	char *cp;
	cp=this->Getstr();
	m=this->Getlen();
	for(int i=cursor;i<m;i++)
		cp[i]=cp[i+pos];
	cp[i]='\0';
}
void main()
{
	String s1;
	EditString s2;
	char *cp;
	s1.Setstr("Object-oriented Programming!");
	cp=s1.Getstr();
	s2.Setstr(cp);
	s2.Print();
	s2.MoveCursor(16);
	s1.Setstr("Windows");
	s2.Add(&s1);
	s2.Print();
	s2.MoveCursor(7);
	s2.Delete(9);
	s2.Print();
	s1.Setstr("TTT");
	s2.Replace(&s1);
	s2.Print();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -