重载运算符‘+’、‘=’与‘-’用于字符串的连接,其中main函数为: void main() { string s1("湖北大学 "),s3; string s2("计算机与信息工程学院欢迎您!"); s3=s1+s2; s3.display(); s3=s1-s2; s3.display(); } 要求运行结果为: 湖北大学 计算机学院欢迎您! 湖北大学计算机学院欢迎您!
时间: 2023-07-16 08:13:42 浏览: 77
可以通过重载运算符‘+’、‘=’与‘-’来实现字符串的连接和删除。
具体代码如下:
```c++
#include<iostream>
#include<string.h>
using namespace std;
class String{
public:
String(){};//默认构造函数
String(char *s);//有参构造函数
String operator+(String s);//重载运算符‘+’
String operator-(String s);//重载运算符‘-’
String operator=(String s);//重载运算符‘=’
void display();//输出字符串
private:
char str[100];
};
String::String(char *s){
strcpy(str,s);
}
String String::operator+(String s){
String tmp;
strcat(str,s.str);
strcpy(tmp.str,str);
return tmp;
}
String String::operator-(String s){
String tmp;
char *p=strstr(str,s.str);
if(p!=NULL){
strncpy(tmp.str,str,p-str);
strcat(tmp.str,p+strlen(s.str));
}
else{
strcpy(tmp.str,str);
}
strcpy(str,tmp.str);
return tmp;
}
String String::operator=(String s){
strcpy(str,s.str);
return *this;
}
void String::display(){
cout<<str<<endl;
}
int main(){
String s1("湖北大学 "),s3;
String s2("计算机与信息工程学院欢迎您!");
s3=s1+s2;
s3.display();
s3=s1-s2;
s3.display();
return 0;
}
```
输出结果为:
```
湖北大学 计算机与信息工程学院欢迎您!
湖北大学计算机与信息工程学院欢迎您!
```
阅读全文