第八周项目4--String类的构造
来源:互联网 发布:win10如何更改mac地址 编辑:程序博客网 时间:2024/06/13 16:23
/**Copyright (c) 2014, 烟台大学计算机学院*All rights reserved.*文件名称:test.cpp*作者:于凯*完成日期:2015年 5月 9 日*版本号:v1.0*/#include <iostream>#include <cstring>using namespace std;class String{public: String(); String(const char *); String operator+(const String &); String operator-(const String &); void display();private: char *p; int len;};String::String(){ p=NULL; len=0;}String::String(const char *a){ len=strlen(a); p=new char[len+1]; strcpy(p,a);}String String::operator+(const String &s2){ String s; s.len=this->len+s2.len; s.p=new char[s.len+1]; strcpy(s.p,this->p); strcat(s.p,s2.p); return s;}String String::operator-(const String &s2){ String s; char *c1=new char[this->len+1]; strcpy(c1,this->p); int i=this->len-1; while(i>=0&&c1[i]==' ') --i; c1[i+1]='\0'; char *c2=new char[s2.len+1]; strcpy(c2,s2.p); i=0; while(i<s2.len&&c2[i]==' ') ++i; int j=0; while(i<s2.len&&c2[i]!='\0') { c2[j]=c2[i]; ++i; ++j; } c2[j]='\0'; s.len = strlen(c1)+strlen(c2); s.p = new char[s.len+1]; strcpy(s.p,c1); strcat(s.p,c2); delete c1; delete c2; return s;}void String::display(){ cout<<p<<endl;}int main(){ String s1("dong liang"),s2(" shi zhu zi"),s3; s3=s1+s2; cout<<"s1+s2="; s3.display(); s3=s1-s2; cout<<"s1-s2="; s3.display(); return 0;}
运行结果:
0 0
- 第八周项目 四 【项目4-String类的构造】
- 第八周项目4——String类的构造
- 第八周项目4-String类的构造
- 第八周上机项目4—String类的构造
- 第八周 项目4-String类的构造
- 第八周【项目4-String类的构造】
- 第八周项目4 String 类的构造
- 第八周项目4:String类的构造
- 第八周项目4--String类的构造
- 第八周 项目4-String类的构造
- 第八周项目4-String类的构造
- 第八周项目4-string类的构造
- 第八周上级项目4 String类的构造
- 第八周项目4-String类的构造
- 第八周 项目四-string类的构造
- 第八周 项目四:String类的构造
- 第八周项目四:String类的构造
- 第八周 项目四 String类的构造
- C语言入门
- win8系统下u盘不显示怎么办
- C语言流程控制总结
- maven公共仓库
- Java基础——集合(上)之Collection
- 第八周项目4--String类的构造
- Thinkphp下的RABC Role的显示和修改
- 求一个二进制数中1的个数
- Objective-C 给分类添加属性——关联对象
- Word Ladder
- Android开发秘籍学习笔记(二)
- Android中Handler的post方法的作用是什么
- 函数式编程很难,这正是你要学习它的原因
- oracle10g/11g 新特性九(数据库诊断)