要求:设计一个字符串类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;
}