现要求建立一个类String,连接两个字符串后。具体相关要求如下:
① 定义私有数据成员
② 定义int Length;字符串长度,char*s指向字符串的指针
③ 定义共有成员
④ 定义构造函数
⑤ 定义析构函数
⑥ 拷贝构造函数
⑦ String operator+(String &);//重载“+”运算符
⑧ String operator=(String &);//重载“=”运算符
⑨ void show(); //输出两个字符串和结果字符
⑩ 最后要求在主函数完成运算
class String {
int len;
char *s;
public:
String(int len,char *s){
this->len = len;
this->s=s;
}
~String(){
cout << "这里要销毁对象";
}
String operator+(String a){
char *temp= new char[len+a.len]; //定义空数组
strcpy(temp,s); //先把abc放到数组中
strcat(temp,a.s); //再把bcd追加进去
cout << temp << endl;
}
String operator=(String a){
cout << "这里重载=号"<< endl;
}
void show(String str1,String str2){
str1+str2;
}
};
int main(){
String a(3,"abc");
String b(3,"bcd");
a.show(b,a);
}
2.写一个程序,进行体操评分,依次输入10名评委所评分数,去除一个最高分和一个最低分,再算出平均分作为选手的得分。:
① 正确导入头文件
② 正确创建合理变量
③ 循环输入10分数
④ 输出最高分
⑤ 输出最低分
⑥ 输出去掉最高分,最低分后的总分数
⑦ 输出最后的平均分数
⑧ 在main函数中实现
⑨ 结果正确
⑩ 写上合理注释
void test18_2(){
double arr[10];
for(int i = 0;i< size(arr);i++){
cin >> arr[i];
}
sort(arr,arr+10);
cout << arr[0] << " "<< arr[9]<< endl;
double sum = 0;
for(int i = 1;i<9;i++){
sum+=arr[i];
}
cout << sum << endl;
cout << sum/8 << endl;
}
3.
① 定义头文件
② 定义char str1[60]:存放被插入的字符串定义共有成员
③ 定义char str2[40]:存放待插入的字符串
④ 定义char str3[100]:存放插入后的字符串
⑤ 定义STRING(char *s1,char *s2):构造函数,用s1和s2初始化str1和str2。
⑥ void process():将str2中的字符串插入到str1中,存放到str3中
⑦ void print():输出插入后的字符串。
⑧ 在主程序中定义STRING类的对象
⑨ 运用test对该类进行测试
⑩ 给出合理注释
class STRING{
public:
char str1[60];
char str2[40];
char str3[100];
STRING(char *s1,char *s2){
for(int i = 0;i< 3;i++){
str1[i] = s1[i];
}
for(int i = 0;i<3;i++){
str2[i] = s2[i];
}
}
void process(){
int k = 0;
for(int i = 0;i<3;i++){
str3[k] = str1[i]; //a {a,}
k++;
str3[k] = str2[i]; //A
k++;
}
}
void print(){
for(int i = 0;i<6;i++){
cout << str3[i];
}
}
};
int main(){
char s1[] = {'a','b','c'};
char s2[] = {'A','B','C'};
STRING test(s1,s2);
test.process();
test.print(); //aAbBcC
}