📄 str.cpp
字号:
//str.cpp
#include<iostream.h>
#include"str.h"
str::str(char *p)
{
int i;
char *q1,*q2;
for(i=0;*(p+i)!='\0';i++);
len=i;
s=new char[len+1];
for(q1=s,q2=p;*q2!='\0';q1++,q2++)
*q1=*q2;
*q1='\0';
}
str::str(str& st)
{
char *q1,*q2;
s=new char[st.len+1];
for(q1=s,q2=st.s;*q2!='\0';q1++,q2++)
*q1=*q2;
*q1='\0';
}
str::~str()
{
delete []s;
}
str& str::operator =(str s1)
{
char *q1,*q2;
delete []s;
len=s1.len;
s=new char[len+1];
for(q1=s,q2=s1.s;*q1++=*q2++;);
return(*this);
}
str str::operator +(str& s1)
{
str temp;
char *q1,*q2;
delete []temp.s;
temp.len=len+s1.len;
temp.s=new char[temp.len+1];
for(q1=temp.s,q2=s;*q2!='\0';q1++,q2++)
*q1=*q2;
for(q2=s1.s;*q2!='\0';q1++,q2++)
*q1=*q2;
*q1='\0';
return(temp);
}
int str::operator ==(str& s1)
{
char *q1=s,*q2=s1.s;
while(*q1!='\0'&&*q2!='\0'&&*q1==*q2)
{
q1++;
q2++;
}
return(!(*q1-*q2));
}
char str::operator [](int i)
{
char ch;
if(i<1||i>len)
{
cout<<"下标越界!"<<endl;
ch='\0';
}
else
ch=*(s+i-1);
return(ch);
}
ostream& operator <<(ostream& output,const str& s1)
{ output<<s1.s;
return(output);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -