第八周 项目4-String类的构造
来源:互联网 发布:淘宝上传宝贝速度 编辑:程序博客网 时间:2024/05/22 08:11
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:呼亚萍 * 完成日期:2015年5月8日 * 版 本 号:v1.0 * * 问题描述:请构造String类的加、减运算。其中,s1 + s2将两个字符串的连接起来;s1 - s2是将s1的尾部空格和s2的前导空格去除后的连接。 * 程序输入:相应的程序 * 程序输出:对应得结果 */#include <iostream>#include <Cstring>using namespace std;class String{public: String();//默认构造函数 String(const char *s); String(String &str); ~String(); friend String operator+(String&s1, String &s2); friend String operator-(String&s1,String &s2); void display();private: int len; char *p;};String::String(){ len=0; p=NULL;}String::String(const char *s){ len=strlen(s);//取s的长度 p=new char[len+1]; strcpy(p,s);}String::String(String &str){ len=str.len; if(p!=NULL) delete []p; p=new char[str.len+1]; strcpy(p,str.p);}String::~String(){ if(!p) delete []p;}void String::display(){ cout<<p<<endl;}String operator+( String&s1,String &s2){ String s; s.len=s1.len+s2.len; s.p=new char[s.len+1]; strcpy(s.p,s1.p); strcat(s.p,s2.p); return s;}String operator-( String&s1,String &s2){ String s; char *c1=new char[s1.len+1]; strcpy(c1,s1.p); int i=s1.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;}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;}
运算结果:
知识点总结:
使用while循环语句去除字符串中的空格,strcat函数可以将两个char类型链接
学习心得:
学会使用老师提供的解答与百度!
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类的构造
- Minimum SDK、Target SDK、Compile SDK作用
- Kinect 骨骼映射---Let me dance for U!
- C# 反射
- memcache笔记
- asp/aspx/htm和html的区别
- 第八周 项目4-String类的构造
- Objc-Runtime理解
- Host文件位置和作用介绍
- mac android jdk环境配置
- Codeforces Round #301 (Div. 2)C - Ice Cave-bfs
- (素材源码)猫猫学iOS(四十一)UI之核心动画 两行代码搞定3D转场(做android的哭死)
- POJ2243 Knight Moves
- setuid setgid root 权限提升 android root su
- select (Unix)