2015年大一下第6周项目4-String类的构造
来源:互联网 发布:蚁群算法处理tsp问题 编辑:程序博客网 时间:2024/05/29 02:44
/**Copyright (c) 2014,烟台大学计算机学院*All rights reserved.*文件名称:Annpion.cpp*作者:王耀鹏*完成日期:2015年4月29日*版本号:v1.0**问题描述:请构造String类的加、减运算。其中,s1 + s2将两个字符串的连接起来;s1 - s2是将s1的尾部空格和s2的前导空格去除后的连接。*输入描述:无。*输出描述:s1 + s2将两个字符串的连接起来;s1 - s2是将s1的尾部空格和s2的前导空格去除后的连接.*/#include<iostream>#include<cstring>using namespace std;class String{public: String();//需要的成员函数(若需要的话,声明友元函数) String (char *s); String (String &s); ~String (); String operator+(String &s); String operator-(String &s); void display();private: char *p; //指向存储的字符串 int len; //记录字符串的长度};String::String(){ len=0; p=NULL;}String::String(char *s){ len=strlen(s); p=new char[len+1]; strcpy(p,s);}String::String(String &s){ len=s.len; p=new char[len+1]; strcpy(p,s.p);}String::~String(){ if(!p) delete[]p;}String String::operator+(String &s){ String str; str.len=len+s.len; str.p=new char[str.len+1]; strcpy(str.p,p); strcat(str.p,s.p); return str;}String String::operator-(String &s){ int i=len-1; String str; char *c1=new char[len+1]; strcpy(c1,p); while(i>=0&&c1[i]==' ') i--; c1[i+1]='\0'; char *c2=new char[s.len+1]; strcpy(c2,s.p); int j=0; while(c2[j]==' ') { for(int m=0;m<len;m++) c2[m]=c2[m+1]; } str.len=strlen(c1)+strlen(c2); str.p=new char[str.len+1]; strcpy(str.p,c1); strcat(str.p,c2); delete []c1; delete []c2; return str;}void String::display(){ cout<<p<<endl;}int main( ){ String string1(" Hello "), string2(" World "); string1.display(); string2.display(); String string3; string3 = string1 + string2; string3.display(); string3 = string1 - string2; string3.display(); return 0;}
运行结果:
0 0
- 2015年大一下第6周项目4-String类的构造
- 2015年大一下第1周项目4-时间类
- 2015年大一下第3周项目4-指向学生类的指针
- 2015年大一下第7周项目4-我的向量类
- 2015年大一下第3周项目1-三角形的构造函数(1)使用带参数构造函数
- 2015年大一下第3周项目1-三角形的构造函数(2)设计默认构造函数
- 2015年大一下第1周项目3-长方体类
- 2015年大一下第12周项目3--立体类族共有的抽象类
- 2015年大一下第2周项目4-考了语文数学的学生
- 2015年大一下第4周项目3-用多文件组织多个类的程序
- 2015年大一下第3周项目2-分数类的雏形
- 2015年大一下第5周项目2-我的数组类
- 2015年大一下第5周项目3-人数不定的工资类
- 2015年大一下第8周项目3-类族的设计
- 2015年大一下第12周项目2-形状类族的中的纯虚函数
- 2015年大一下第6周项目3-分数类中的运算符重载(1)分数类的加减乘除
- 2015年大一下第6周项目3-分数类中的运算符重载(2)分数与整数的加减乘除
- 2015年大一下第8周项目2-职员有薪水了(1)string类型
- opencv 计时函数
- VisualCaptcha – 灵活的可视化验证码解决方案
- poj-3026—bfs+最小生成树
- CODE[VS] 1036 商务旅行(LCA + BFS)
- 物联网行业标准组织AllSeen Alliance成立---AllSeen AllJoyn 一回事了
- 2015年大一下第6周项目4-String类的构造
- webView loadData 中文乱码问题
- 对RFID安全机制的分析和解决方案
- 【SPOJ】Triple Sums【FFT】
- ios笔记-NSDictionary
- 第八周项目四 【炒鸡难!!高能预警!】String类的构造(重载双目运算符)
- 【J2EE浅析】——JNDI
- 一篇很全面的freemarker教程
- qtp论坛