6-25

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_)

简单的东西自己看看滴,呵呵。运算符的没加啊。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值