MyString();
MyString(const MyString &str);
MyString(const char*str);
MyString &operator=(const MyString &str); //利用已有的string对象通过=给一个对象进行赋值 MyString &operator=(const char*str); //直接用常量字符串进行赋值
MyString &assign(const MyString&str); MyString &assign(const char*sstr);
size_t getsize()const; //返回字符串大小 void clear(); //把字符串清空 bool empty(); //判断字符串是否为空 void swap(MyString &str); //交换两个字符串 int compare(const MyString &str)const; //比较2个字符串的大小 //第一个const说明显式调用的字符串不可更改,括号外面的const说明隐式调用的字符串不可更改,只读数据 int compare(const char*str);
MyString &operator+=(const MyString&str); MyString &operator+=(const char*str); MyString &append(const MyString&str); MyString &append(const char *str);
MyString substr(size_t pos = 0,n=npos) const;生成字串,从第0个位置开始长度为n,若N超过长度,则为输出整个字符串的长度
friend bool operator==(const MyString &str1,const MyString &str2); friend bool operator==(const char *str,const MyString &str2); friend bool operator==(const MyString &str1,const MyString *str2); friend bool operator>(const MyString &str1,const MyString &str2); friend bool operator>(const char*str1,const MyString &str2); friend bool operator>(const MyString &str1,const char*str2);
friend MyString operator+(const MyString &str1,const MyString &str2); friend MyString operator+(const char*str1,const MyString &str2); //两个字符串进行相加 friend MyString operator+(const MyString &str1,const char*str2); friend ostream & operator<<(ostream &os,const MyString &str); //输出命令符的重载
char *string; //指向字符串的指针 int length; //字符串的长度 static const int string_number = 0; //计数创建的字符串的数目
MyString::MyString()
{
length = 0;
string = new char;
char *s = "/0";
memcpy(string,s,1);
++string_number;
}
MyString::MyString(const char*str)
{
length = strlen(str);
string = new char(length+1);
memcpy(string,s,length);
++string_number;
}
MyString::MyString(MyString &str)
{
length = str.length;
string = str.string;
++string_number;
}
MyString::~MyString()
{
delete[]string;
--string_number;
}
MyString::MyString()
{
length = 0;
string = new char;
string = "/0";
++string_number;
}
MyString &MyString::operator+=(const MyString&str)
{
char *dest;
dest = new char[str.length+length+1];
memcpy(dest,string,length);
memcpy(dest+length,str.string,str.length+1);
delete[]string;
length = length+str.length;
string = dest;
return*this;
}
MyString &MyString::operator+=(const char*str)
{
char *dest;
dest = new char[strlen(str)+length+1];
memcpy(dest,string,length);
memcpy(dest+length,str,strlen(str)+1);
delete[]string;
string = dest;
return *this;
}
//字符串赋值
MyString &MyString::operator=(const MyString&str)
{
if(&str == this)
return *this;
delete[]string;
string = new char[str.length];
memcpy(string,str.string,str.length);
length = str.length;
return *this;
}
size_t MyString::getsize(MyString &str)
{
return strlen(str.string);
}
void MyString::clear()
{
length = 0;
while(string!='/0')
*string ='/0';
}
bool MyString::empty()
{
return strlen(string)==0;
}
int MyString ::compare(const MyString &str)
{
return compare(string,str.string);
}
void MyString::swap(MyString &str)
{
char *temp;
temp = string;
string = str.string;
str = temp;
}
Mystring MyString::substr(sizez_t pos=0,size_t n )const
{
MyString string;
delete[]string.string;
if(n>length)
{
string.length = length;
string.string = new char[length+1];
memcpy(string.string,string,length+1);
return string;
}
length = n;
string.string = new char[length+1];
memcpy(string.string,string,length+1);
return string;
}
friend bool operator==(const MyString &str1,const MyString &str2)
return strcmp(str1.string,str2.string)==0;
friend MyString operator+(const MyString &str1,const MyString &str2)
{
MyString mystring;
char *dest;
dest = new char[str1.length+str2.length+1];
memcpy(dest,str1.string,str1.length);
memcpy(dest+str1.length,str2.string,str2.length+1);
delete[]mystring.string;
mystring.string = dest;
mystring.length = str1.length+str2.length;
return mystring;
}
friend ostream &operator<<(ostream &os,const MyString &str)
{
os<<str.string;
return os;
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有