版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37806112/article/details/82388936
//mystring.h
#include<iostream>
using namespace std;
class String
{
char *str;
int len;
enum{CINLIM=90}; //输入字符不能超过90
public:
String(const char *s);
String();
String(const String &);
~String();
int length() const {return len;}
int find(char ch);
String operator=(String s);
String operator+=(String s);
bool operator==(String s);
//友元函数
friend ostream &operator<<(ostream &os,const String &st);
friend istream &operator>>(istream &is,String &st);
};
#include <cctype>
#include <cstring>
#include "mystring.h"
String::String()
{
len =0;
str=NULL;
}
String::String(const char *s)
{
len=strlen(s);
str=new char[len+1];
strcpy(str,s);
}
int String::find(char ch)
{
int i=0;
for(i=0;i<this->len;i++)
{
if(this->data[i]==ch)
{
return i+1;
}
}
return -1
}
String::String(const String &st)
{
len=st.len;
str=new char[len+1];
strcpy(str,st.str);
}
String String::operator=(String s)
{
if(this->str!=NULL)
{
delete[] this->str;
}
this->str=new char[s.len+1];
strcpy(this->str,s.str);
this->len=s.len;
return *this;
}
String String::operator+=(String s)
{
char tmp[this->len+1];
strcpy(tmp,this->str);
tmp[this->len]='\0';
delete [] this->str;
this->str=new char[this->len+strlen(s.str)+1];
strcpy(this->str,tmp);
strcat(this->str,s.str);
len=strlen(this->str);
return *this;
}
bool String::operator==(String s)
{
if(this->len!=s.len)
{
return false;
}
if(strcmp(this->str,s.str)==0)
{
return true;
}
else
{
return false;
}
}
String::~String()
{
delete[] str;
}
ostream &operator<<(ostream &os,const String &st)
{
os<<st.str;
return os;
}
istream &operator>>(istream &is,String &st)
{
char temp[String::CINLIM];
is.get(temp,String::CINLIM);
if(is)
{
st=temp;
}
while(is && is.get()!='\n')
{
continue;
}
return is;
}
#include<iostream>
#include "mystring.h"
using namespace std;
int main()
{
String s1("I am a C++ student");
String s2("please input your name ");
String s3;
//s2=s2+s1;
//s2+=s1;
s3=s2;
cout<<s3<<endl;
/*
cout<<s2.length()<<endl;
String ans;
cin>>ans;
String s3("hello");
if(s3==ans)
{
cout<<"success"<<endl;
}
else
{
cout<<"false"<<endl;
}
*/
}