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

📄 str.cpp

📁 c++书籍的源代码
💻 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 + -