001:全面的MyString
查看提交统计提问
总时间限制: 1000ms 内存限制: 65536kB
描述
程序填空,输出指定结果

#include
#include
using namespace std;
int strlen(const char * s)
{ int i = 0;
for(; s[i]; ++i);
return i;
}
void strcpy(char * d,const char * s)
{
int i = 0;
for( i = 0; s[i]; ++i)
d[i] = s[i];
d[i] = 0;

}
int strcmp(const char * s1,const char * s2)
{
for(int i = 0; s1[i] && s2[i] ; ++i) {
if( s1[i] < s2[i] )
return -1;
else if( s1[i] > s2[i])
return 1;
}
return 0;
}
void strcat(char * d,const char * s)
{
int len = strlen(d);
strcpy(d+len,s);
}
class MyString
{
// 在此处补充你的代码
};

int CompareString( const void * e1, const void * e2)
{
MyString * s1 = (MyString * ) e1;
MyString * s2 = (MyString * ) e2;
if( * s1 < *s2 )
return -1;
else if( *s1 == *s2)
return 0;
else if( *s1 > *s2 )
return 1;
}
int main()
{
MyString s1(“abcd-”),s2,s3(“efgh-”),s4(s1);
MyString SArray[4] = {“big”,“me”,“about”,“take”};
cout << "1. " << s1 << s2 << s3<< s4<< endl;
s4 = s3;
s3 = s1 + s3;
cout << "2. " << s1 << endl;
cout << "3. " << s2 << endl;
cout << "4. " << s3 << endl;
cout << "5. " << s4 << endl;
cout << "6. " << s1[2] << endl;
s2 = s1;
s1 = “ijkl-”;
s1[2] = ‘A’ ;
cout << "7. " << s2 << endl;
cout << "8. " << s1 << endl;
s1 += “mnop”;
cout << "9. " << s1 << endl;
s4 = “qrst-” + s2;
cout << "10. " << s4 << endl;
s1 = s2 + s4 + " uvw " + “xyz”;
cout << "11. " << s1 << endl;
qsort(SArray,4,sizeof(MyString),CompareString);
for( int i = 0;i < 4;i ++ )
cout << SArray[i] << endl;
//s1的从下标0开始长度为4的子串
cout << s1(0,4) << endl;
//s1的从下标5开始长度为10的子串
cout << s1(5,10) << endl;
return 0;
}
输入

输出

  1. abcd-efgh-abcd-
  2. abcd-
  3. abcd-efgh-
  4. efgh-
  5. c
  6. abcd-
  7. ijAl-
  8. ijAl-mnop
  9. qrst-abcd-
  10. abcd-qrst-abcd- uvw xyz
    about
    big
    me
    take
    abcd
    qrst-abcd-
    样例输入

    样例输出
  11. abcd-efgh-abcd-
  12. abcd-
  13. abcd-efgh-
  14. efgh-
  15. c
  16. abcd-
  17. ijAl-
  18. ijAl-mnop
  19. qrst-abcd-
  20. abcd-qrst-abcd- uvw xyz
    about
    big
    me
    take
    abcd
    qrst-abcd-
    来源
    Guo Wei
class MyString
{   char p[100];public:MyString(const char *a){strcpy(p,a);} MyString(){}~MyString(){}MyString(const MyString & m){if(m.p==NULL)return;strcpy(p,m.p);}friend ostream & operator<<(ostream &o,MyString &m){if(m.p)o<<m.p;return o;}MyString & operator=(const MyString &m){strcpy(p,m.p);return *this;}MyString & operator=(const char *m){strcpy(p,m);return *this;}    MyString operator+(const MyString &m){MyString t(*this);strcat(t.p,m.p);return t;}MyString & operator+=(const char *m){strcat(p,m);strcpy(this->p,p);return *this;}friend MyString operator+(const char *p,const MyString &m){MyString s;strcpy(s.p,p);strcat(s.p,m.p);return s;}int operator<(const MyString &m){if(strcmp(p,m.p)<0)return 1;return 0;}bool operator==(const MyString &m){      return !strcmp(p,m.p);}bool operator>(const  MyString &m){return strcmp(p,m.p);}char & operator[](int i){return p[i];}char * operator()(int i,int len){char *k=new char[100];int l=i,t=0;for(;l<i+len;l++,t++)k[t]=p[l];k[t]=0;return k;}
};

笔者有些地方没做好,可能会出现内存泄漏。

关机重启就好了

c++做题记录1 01:全面的MyString 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 程序填空,输出指定结果相关推荐

  1. 2020.9月做题记录

    八月的做题记录因为是暑假所以鸽掉了. 离联赛真的不远了,要继续努力啊qwq- week -1 2020.08.30 2020.08.30 今天考试,修了20+次锅,修的我都没有心情做题了- 然后开始消 ...

  2. 退役前的做题记录1.0

    退役前的做题记录1.0 租酥雨最近很懒qwq,具体表现在写题的时候不想发题解了. 但是想想这样也不太好,就决定发个一句话(半句话到几句话不等)题解上来. 2018-09.18-2018-09.28 [ ...

  3. 【Pikachu】漏洞练习平台做题记录+原理解析(2.2)XSS姿势和技巧

    前言 Pikachu是一个带有漏洞的Web应用系统,在这里包含了常见的web安全漏洞. 如果你是一个Web渗透测试学习人员且正发愁没有合适的靶场进行练习,那么Pikachu可能正合你意. pikach ...

  4. 退役前的做题记录2.0

    退役前的做题记录2.0 最近在刷省选题......大致上是按照省份刷的. 不过上面的题目顺序是按照写题的顺序排列的,所以可能会有点乱哈. [BZOJ2823][AHOI2012]信号塔 最小圆覆盖,随 ...

  5. 概率期望题(期望 DP)做题记录

    概率期望题(期望 DP)做题记录 P3830 [SHOI2012]随机树 难点在于第二问:生成树的期望深度. 不 wei zhuo 捏,设 \(dp_{i,j}\) 表示已经有了 \(i\) 个叶子结 ...

  6. 数数题(计数类 DP)做题记录

    数数题(计数类 DP)做题记录 CF1657E Star MST 我们称张无向完全图是美丽的当且仅当:所有和 \(1\) 相连的边的边权之和等于这张完全图的最小生成树的边权之和. 完全图点数为 \(n ...

  7. Regional 做题记录 (50/50)

    写在前面 博主深感自己太弱了QAQ 于是有了一个刷水的想法,Regional的题目还是有很多考查思维的题目,所以这次是乱做50道思考题,可能会顺带做一些水题,这些题的简要题解会写到这篇博文里面,希望能 ...

  8. ctfshow 网络迷踪做题记录(1)

    ctfshow 网络迷踪做题记录(1) -- 新手上路 找桥的名字. 附件为一张海边图片. 百度识图为蜈支洲岛,得到地点名,但还需要具体桥的名字. 再用搜索引擎搜索关键字,就可以看到结果中的" ...

  9. CF 绿蓝题做题记录

    CF 绿蓝题做题记录 题单 最近有在经常随机一些 CF 绿蓝难度的题目,用于提升思维.这里专门开个坑,记录一下思路障碍经验什么的. 自然这些内容也在每天本来的做题记录中就有记录,只不过这里只是把它集合 ...

最新文章

  1. SLAM精度测评——EVO
  2. c# winform 用子窗体刷新父窗体,子窗体改变父窗体控件的值
  3. 阅读豆丁网----基于模型的混合多目标算法的研究
  4. 转另一个获取硬盘序列号的方法
  5. java注解方式实体类_如何用注解的方式在实体类中实现一对一,和一对多多对多...
  6. error: jump to label [-fpermissive]
  7. table_line
  8. 音视频技术开发周刊 54期
  9. 进程间通信的方式总结
  10. Java平台模块系统公众审查未能通过
  11. python defaultdict函数_Python中defaultdict与lambda表达式用法
  12. delphi chart 曲线实时_发展学生曲线跑能力的体育游戏及运用研究
  13. 数据分析 | 基于智能标签,精准管理数据
  14. 10进制小数转化为任意进制小数
  15. 手机丢了如何损失最小
  16. java动态规划法实例_动态规划法实现找零 java
  17. 多线程常见面试题(含常见项目遇到多线程问题解决及面试对话)
  18. Linux-1-概述
  19. List------数据结构
  20. 13、撤回(撤销)、驳回(退回)、作废(终止)、挂起(中止)

热门文章

  1. Windows10 关于系统中断CPU占用过高导致电脑变卡的解决办法
  2. 什么是IC封测?语音芯片封装与测试的流程步骤
  3. TypeScript下载安装
  4. Cadence OrCAD 原理图栅格样式的大小设置方法图文教程及视频演示
  5. 【论文阅读】【综述】3D Object Detection 3D目标检测综述
  6. 阿里巴巴淘系技术部拍卖部-春招提前批
  7. TP-LINK无线路由器WR340G+ 54M支持WDS - 东莞市泰讯电子科技有限公司
  8. 双系统模式下如何卸载ubuntu系统
  9. 毕业相关——电网项目
  10. Vue key的作用