2-8-4 String类的构造
来源:互联网 发布:国泰安数据库是什么 编辑:程序博客网 时间:2024/06/05 03:27
问题及代码:
#include <iostream>#include <string.h>using namespace std;class String{public: String():len(0) { p=new char; }; String(char *s);//需要的成员函数(若需要的话,声明友元函数) String(char *s,int l); String operator+(String &s); String operator-(String &s0);private: char *p; //指向存储的字符串 int len; //记录字符串的长度};String::String(char *s){ len=strlen(s); p=new char[len+1]; strcpy(p,s);}String::String(char *s,int l){ len=l; p=new char[len+1]; strcpy(p,s);}String String::operator+(String &s){ String s0; s0.len=len+s.len; s0.p=new char[s0.len+1]; strcpy(s0.p,p); strcat(s0.p,s.p); return s0;}String String::operator-(String &s0){ String s; //c1为截去尾部空格的字符串 char *c1=new char[len+1]; strcpy(c1,p); int i=len-1; while(i>=0&&c1[i]==' ') --i; c1[i+1]='\0';//c2为去除前导空格的字符串 char *c2=new char[s0.len+1]; strcpy(c2,s0.p); i=0; while(i<s0.len&&c2[i]==' ') ++i; int j=0; while(i<s0.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]; //原误写char(s.len+1) strcpy(s.p,c1); strcat(s.p,c2); delete c1; delete c2; return s;}int main(){ char a[]="S510"; char b[]="DaGe"; String s1(a),s2(b,4),s3; s3=s1+s2; char c[]=" Chi"; char d[]="na "; String s4(d),s5(c),s6; s6=s4-s5; return 0;}
学习小结:
额,第八周的项目现在才完成哈。
有点羞涩,哈哈。
今天在机房构造加法重载费了我好大力,还好写出来的和贺老的一样,因为在减法那个实在想不出来了,就看了一下下。
好,开始做第九周的!
0 0
- 2-8-4 String类的构造
- String类的构造
- String类的构造
- String类的构造
- String 类的构造
- string 类的构造
- 第8周项目4 String类的构造
- 第8周项目4-String类的构造
- 第8周项目4-String类的构造
- 第8周 项目4 String类的构造
- 第8周项目4-String类的构造
- 第7周-项目4-String类的构造-构造String类的加、减运算
- string类的简单构造。
- string类的构造函数
- 类String的构造函数
- string类的构造函数
- string类的构造函数
- String类的构造方法
- ?归并排序
- 安卓开发-Activity中finish() onDestroy() 和System.exit()的区别
- iOS学习笔记二
- json的解析方式
- idea 的代码分析
- 2-8-4 String类的构造
- 插入排序(数组)
- [LeetCode][Java] Unique Binary Search Trees
- Java中int和Integer的区别
- 【c语言】n 的k次方递归
- SpringMVC-16 运行流程
- C 结构体大小及单元空间对齐
- Linux 命令行快捷键
- POJ 1228 稳定凸包