*字符串操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Fiverya/article/details/88884611

定义一个基类BaseString,实现基本的输入字符串的功能。再分别定义三个派生类,要求如下: 1.定义一个ReString类,公有继承基类BaseString,实现字符串的倒置功能。如,将字符串“1234abcd”,倒置后这“dcba4321”。 2.定义一个CopyString类,公有继承基类BaseString,实现字符串的复制功能。 3.定义一个CmpString类,私有继承基类BaseString,实现字符串的比较功能。 基类BaseString部分定义如下: class BaseString { char *Chstr; int Length; public: BaseString(char *s); char *GetString(); int GetLength(); }; 测试用例说明: 1.输入第一行是ReString类数据,用于数据倒置; 2.输入第二行是CopyString类数据,用于数据复制; 3.输入第三、四行是CmpString类数据,用于两个字符串比较,输出比较结果。

#include<iostream>  
#include<stdio.h>  
#include<string.h>  
using namespace std;  
class BaseString  
{  
    char *Chstr;   
    int Length;  
    public:  
    char*s;  
    BaseString(char *s){Chstr=s;Length=strlen(s);}  
    char *GetString() {return Chstr;}   
    int GetLength() {return Length;}  
};  
  
class ReString:public BaseString  
{  
    char b[20],*p;  
    public:  
        ReString(char a[20]):BaseString(a)  
        {p=GetString();}  
        void re()  
        {for(int i=1;i<GetLength()+1;i++)  
            {b[GetLength()-i]=*p;  
                p++;  
            }  
        b[GetLength()]='\0';  
        cout<<"倒序输出:"<<b<<endl;  
        }  
};  
  
class CopyString:public BaseString  
{  
    char *p;  
    public:  
    CopyString(char a[20]):BaseString(a){p=GetString();}  
    void Copy()  
    {cout<<"复制输出:"<<p<<endl;}  
};  
class CmpString:private BaseString  
{  
    char *q,*p;  
    public:  
        CmpString(char a[20],char b[20]):BaseString(a)  
        {p=GetString();q=b;}  
    void cmp()  
    {     
        if(strcmp(p,q)==0)  
        cout<<"判断结果:两字符串相等。"<<endl;  
        else  
        cout<<"判断结果:两字符串不相等。"<<endl;  
    }  
      
};  
int main()  
{   char str1[20],str2[20],str3[20],str4[20];  
    gets(str1);  
    cin>>str2>>str3>>str4;  
    ReString st11(str1);  
    st11.re();  
    CopyString st22(str2);  
    st22.Copy();  
    CmpString st33(str3,str4);  
    st33.cmp();  
    return 0;  
}

猜你喜欢

转载自blog.csdn.net/Fiverya/article/details/88884611