飛飛(八十)(补)请构造String类的加、减运算(s1+s2将两个字符串的连接起来;s1-s2是将s1的尾部空格和s2的前导空格去除后的连接)
来源:互联网 发布:sql 注入登录绕过密码 编辑:程序博客网 时间:2024/05/14 17:49
/**烟台大学计算机学院*文件名称:*作 者:李飞*完成日期:2016年5月23日*版 本 号:codeblocks 16.01**问题描述:*程序输入:无*程序输出:*/#include <iostream>#include<Cstring>using namespace std;class String{public: String();//默认构造函数 String(char *s); String(String &str);//构造函数 ~String(); void display(); friend String operator+(String &s1,String &s2); friend String operator-(String &s1,String &s2);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 &str){ len=str.len; if(p!=NULL) delete []p; p=new char[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; } 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;}
<img src="http://img.blog.csdn.net/20160623120123635?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
0 0
- 飛飛(八十)(补)请构造String类的加、减运算(s1+s2将两个字符串的连接起来;s1-s2是将s1的尾部空格和s2的前导空格去除后的连接)
- 去除字符串s1中包含的s2中的字符后输出s1
- 编写一个函数,有两个参数function(string s1,string s2),找出字符串中s1中s2的个数
- 编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中字符匹配的字符都删除
- 将字符串S1中任何与字符串S2中匹配的字符都删除,实现函数squeeze(s1,s2).
- MySQL填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
- char *s1和char s2[]的区别
- string方法:将s1,s2连接起来保存在s1中
- 字符串S2 是不是S1的反转(算法)
- 判断两个运算符s1,s2的优先顺序
- 将s1,s2连接起来放到s3中
- squeeze(s1,s2),把字符串s1中与s2字符的相同的部分去掉
- 给定s1,s2,s3,发现是否通过s1和s2的交错形成s3。
- hdu 2203 亲和串(给两个字符串s1,s2,问s2可不可能出现在以s1为循环节的串中)
- 三个字符串s1, s2, s3, 现要求你判断s3是否由s1和s2交错组成的
- char *s1 与 char s2[]的区别
- 练习2-5 编写函数any(s1,s2),将字符串s2中的任一字符在字符串s1中第一次出现的位置作为结果返回。如果s1中不包含s2的字符,则返回-1。
- 2.4 重新编写函数squeeze(s1,s2),将字符串s1中任何与字符串s2中字符匹配的字符都删除。
- python 开发模拟板Web QQ(一)
- 设计模式:行为型模式
- 文章标题
- 常用的 android 设计模式
- 学习《Android3D游戏开发技术宝典:OpenGL.ES.2.0》二:着色器语言基础
- 飛飛(八十)(补)请构造String类的加、减运算(s1+s2将两个字符串的连接起来;s1-s2是将s1的尾部空格和s2的前导空格去除后的连接)
- 剑指offer|数值的整数次方
- yii url重写去掉index.php
- UI控件之ScrollView(滚动条)
- iOS之手机信号的查看与判断
- Linux环境下网络共享USB设备服务配置
- matlab绘图基础
- android使用keytools使用
- Android项目多处使用SO库,出现的问题