string 的类似类
#include<iostream>
#include"mystring.h"
using namespace std;
void main()
{
mystring s1("125"),s2("abdmrgs;dfnoilkjgdf"),s3(s2),s4(s2,2,5);
char *s="1586";
s1.display();
s2.display();
s3.display();
s4.display();
cout<<s2.append(s)<<endl;
cout<<s2.assign(s)<<endl;
cout<<s2.compare("159")<<endl;
cout<<s3.length()<<endl;
s2.display();
s3.display();
s2.swap(s3);
s2.display();
s3.display();
}
// mystring.cpp: implementation of the mystring class.
//
//
#include "mystring.h"
#include<iostream>
#include<string>
using namespace std;
//
// Construction/Destruction
//
mystring::mystring()
{
sa=new char[0];
}
mystring::mystring(const mystring&rhs)
{
sa=new char[strlen(rhs.sa)+1];
strcpy(sa,rhs.sa);
}
mystring::mystring(const char *s)
{
sa=new char[strlen(s)+1];
strcpy(sa,s);
}
mystring::mystring(const mystring&rhs,unsigned int pos,unsigned int n)
{
int i;
sa=new char[n+1];
for(i=0;i!=n;++i,++pos)
sa[i]=rhs.sa[pos];
sa[n]='/0';
}
void mystring::display()
{
cout<<sa<<endl;
}
char *mystring::append(const char *s)
{
char *sb=sa;
sa=new char[strlen(s)+strlen(sb)+1];
strcpy(sa,sb);
strcat(sa,s);
return sa;
delete []sb;
}
char*mystring::assign(const char*s)
{
char *sb=sa;
sa=new char[strlen(s)+1];
strcpy(sa,s);
delete []sb;
return sa;
}
int mystring::compare(const mystring&str) const
{
if(strcmp(sa,str.sa)>0) return 1;
else if(strcmp(sa,str.sa)==0) return 0;
else return -1;
}
unsigned int mystring::length()const
{
return strlen(sa);
}
void mystring::swap(mystring&str)
{
char*sb;
sb=str.sa;
str.sa=sa;
sa=sb;
}
mystring::~mystring()
{
delete[] sa;
}
// mystring.h: interface for the mystring class.
//
//
#if !defined(AFX_MYSTRING_H__51280637_4C87_4693_8268_F545DF1A1B16__INCLUDED_)
#define AFX_MYSTRING_H__51280637_4C87_4693_8268_F545DF1A1B16__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class mystring
{
public:
mystring();
mystring(const mystring &rhs);
mystring(const char *s);
mystring(const mystring&rhs,unsigned int pos,unsigned int n);
char *append(const char *s);
char* assign(const char*s);
int compare(const mystring&str) const;
unsigned int length()const;
void swap(mystring&str);
virtual ~mystring();
void display();
private:
char *sa;
};
#endif // !defined(AFX_MYSTRING_H__51280637_4C87_4693_8268_F545DF1A1B16__INCLUDED_)
简单的东西自己看看滴,呵呵。运算符的没加啊。