c++封装机制

要求:设计一个字符串类String,可以求串长,可以连接2个串,可以进行字符串拷贝。

属性:char *s;

         int len;

方法:

      String( ){}          声明一个长度为0的空串

      String(int x){}       声明一个长度为x的串,每个元素为’/0

      String(char *x){}     用字符串常量初始化

      String (String &x){}   拷贝构造函数

      void disp(){}          显示串

   int length(){}         求串长

      void add(String& b){} 两个串相加,结果放在调用add()的串

#include<iostream>
#include<string>
using namespace std;
class string1
{
 char *s;
 int len;
public:
 string1()
 {
        len=0;
  s=new char;

 }
 string1(int x)
 {
  int i;
  len=x;
  s=new char[len];
        for(i=0;i<len;i++)
  {
   s[i]='/0';
  }
 }
 string1(char *x)
 {
  int i=0,count=0;
  s=x;
  for(i=0;s[i]!='/0';i++)
   count++;
  len=count;
 }
 string1(string1 &x)
 {
  int i=0,count=0;
      char *str=new char;
        str=x.s;
        s=str;
   
  for(i=0;s[i]!='/0';i++)
   count++;
  len=count;
 }
 void disp()
 {
  int i;
  for(i=0;i<len;i++)
  {
    cout<<s[i];
  }
  cout<<endl;
 }
 int length()
 {
       return len;
 }
 void add(string1 &b)
 {
  int i,count=0;
  for(i=0;i<b.length()&&b.s[i]!='/0';i++)
  {
   s[len+i]=b.s[i];
   count++;
  }
  len=len+count;
 }
};
void main()
{
 char a[]={"abcd"};
 char b[]={"ABCD"};
 char c[10];
 cin>>c;
 string1 str1,str2(a),str3(c),str4(b),str5(str3);
 str1.disp();
 cout<<str1.length()<<endl;
 str2.disp();
 cout<<str2.length()<<endl;
 str3.disp();
 cout<<str3.length()<<endl;
 str5.disp();
 cout<<str5.length()<<endl;
 str4.disp();
 cout<<str4.length()<<endl;
 str3.add(str4);
    str3.disp();
 cout<<str3.length()<<endl;
 
}

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值