#include <iostream>
#include <string>
using namespace std;
class STR{
char *p;
public:
STR(char *s = 0) {
if (s) {
p = new char[strlen(s) + 1];
strcpy(p, s);
}
}
void set(char *s = 0) {
if (p) delete []p;
if (s) {
p = new char[strlen(s) + 1];
strcpy(p, s);
}
else p = 0;
}
void join(char *s) {
int n1 = strlen(p), n2 = strlen(s);
char *p0 = new char[n1 + n2 + 1],
*p1 = p0, *p2 = p;
while (*p1++ = *p2++);
p1--;
p2 = s;
while (*p1++ = *p2++);
delete []p;
p = new char[n1 + n2 + 1];
p1 = p;
p2 = p0;
while (*p1++ = *p2++);
delete []p0;
}
void backward() {
char *p1 = p, *p2 = p;
while (*p2++);
p2 -= 2;
while (p1<p2)
{
char t = *p1;
*p1 = *p2;
*p2 = t;
p1++;
p2--;
}
}
~STR() { if (p) delete []p; }
void print() { if (p) cout << p << endl; }
};
void main() {
STR st1("12345");
st1.print();
st1.set("abcde");
st1.print();
st1.join("12345");
st1.print();
st1.backward();
st1.print();
}请问【实现插入功能的函数join】要怎么理解?可以解释一下吗?
1 回答
- 1 回答
- 0 关注
- 910 浏览
添加回答
举报
0/150
提交
取消