c++做题记录1 01:全面的MyString 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 程序填空,输出指定结果
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;
}
输入
无
输出
- abcd-efgh-abcd-
- abcd-
- abcd-efgh-
- efgh-
- c
- abcd-
- ijAl-
- ijAl-mnop
- qrst-abcd-
- abcd-qrst-abcd- uvw xyz
about
big
me
take
abcd
qrst-abcd-
样例输入
无
样例输出 - abcd-efgh-abcd-
- abcd-
- abcd-efgh-
- efgh-
- c
- abcd-
- ijAl-
- ijAl-mnop
- qrst-abcd-
- 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; } };
笔者有些地方没做好,可能会出现内存泄漏。
关机重启就好了
- 素数距离问题 时间限制:3000 ms | 内存限制:65535 KB 难度:2 描述 现在给出你一些数,要求你写出一个程序,输出这些整数相邻最近的素数,并输出其相距长度。如果左右有等距离长度素数
- 1504: 变态杀人狂 时间限制: 1 Sec 内存限制: 128 MB 提交: 21 解决: 10 [提交][状态][论坛] 题目描述 变态杀人狂三师弟想到一个杀人游戏 游戏规则如下: 三师
- ZOJ 1205题解本来是一道大数运算水题,可是却纠结了很久,原因是没能真正读懂题意,要求的计算必须是一一对应输出即使前面出现几个0最后也要把前面的0输出,看别人用C++自己还是两个都提交了结果还是C占的内存少。
- 将top命令查看指定程序的结果输出到文件
- 两点距离 时间限制:3000 ms | 内存限制:65535 KB 难度:1 描述 输入两点坐标(X1,Y1),(X2,Y2)(0<=x1,x2,y1,y2<=1000),计算并输出两点间的距离。
- nyoj 36 最长公共子序列 dp问题最长公共子序列 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共
- 九九乘法表 时间限制:1000 ms | 内存限制:65535 KB 难度:1 描述 小时候学过的九九乘法表也许将会扎根于我们一生的记忆,现在让我们重温那些温暖的记忆,请编程输出九九乘
- C++记录程序运行时间
- c/c++中数据输出到文件名有变量的文件中或多个程序运行结果输出到同一个文件中的方法
- c++记录程序运行时间
- C++程序设计 期末考试 编程题#2 输出指定结果一
- c语言:编一个统计选票的程序,先后输入被选人的名字,最后输出各人得票结果
- 模拟赛 数位和乘积(时间限制 1000MS,内存限制 256MB)
- C语言--定义引用结构体数组--编一个统计选票的程序,输入被选人姓名,输出每个人得票结果
- 邮票分你一半 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 小珂最近收集了些邮票,他想把其中的一些给他的好朋友小明。每张邮票上都有分值,他们想把这些邮票分成两
- 【笔试准备】写出程序输出结果C/C++
- 控制台程序 如何查看所有的输出结果
- 超级台阶 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一
- 编写程序String_Count.java,由用户通过键盘指定一个字符串,然后由程序来统计并输出在该字符串中每个字符出现的次数。
- linux下c++多线程下统计程序运行时间(非常注意)