class Strings
{
public:
Strings()
{
m_pBuff = NULL;
}
Strings(char *s)
{
if(s!=NULL)
{
int len = 0;
for(int i=0;s[i]!='\0';i++)
{
len++;
}
m_pBuff = new char[len+1];
memset(m_pBuff,0,len+1);
memcpy(m_pBuff,s,len);
}
}
Strings(Strings &s)
{
int len = s.strlen();
if(len >0)
{
m_pBuff = new char[len+1];
memset(m_pBuff,0,len+1);
memcpy(m_pBuff,s.m_pBuff,len);
}
}
int strlen()
{
if(m_pBuff == NULL)
{
return 0;
}
int len = 0;
for(int i=0;s[i]!='\0';i++)
{
len++;
}
return len;
}
int strcmp(char *s)
{
if(s==NULL && m_pBuff!=NULL)
{
return 1;
}
if(s==NULL && m_pBuff==NULL)
{
return 0;
}
if(m_pBuff==NULL)
{
return -1;
}
return ::strcmp(m_pBuff,s);
}
int strcmp(Strings& s)
{
return strcmp(s.m_pBuff);
}
void strcat(Strings& s)
{
int len = s.strlen();
if(len>0)
{
int thisLen = this->strlen();
int len2 = thisLen +len+1;
char *tmp = new char[thisLen ];
memcpy(tmp ,m_pBuff,thisLen );
delete []m_pBuff;
m_pBuff = new char[len2];
memset(m_pBuff,0,len2);
memcpy(m_pBuff,tmp,thisLen );
memcpy(m_pBuff+thisLen,s.m_pBuff,len);
delete [] tmp ;
}
}
void strcat(char *s)
{
Strings tmp(s);
strcat(tmp);
}
char * substr(int i,int n)
{
if(i>=this->strlen())
{
return NULL;
}
if(i<0)
{
return NULL;
}
char * tmp = new char[n+1];
memset(tmp,0,n+1);
memcpy(tmp,m_pBuff+i,n);
return tmp;
}
~Strings()
{
if(m_buff!=NULL)
{
delete []m_buff;
}
}
void display()
{
if(m_pBuff!=NULL)
{
printf("%s",m_pBuff);
}
else
{
printf("");
}
}
private:
char *m_pBuff;
};
温馨提示:答案为网友推荐,仅供参考