char *ss,*p1,*p2;
ss=new char[getlength()+strlen(s)+1];
p1=ss;
p2=str;
while(*p1=*p2)p1++,p2++;
while(*p1++=*s++);
delete []str;
str=ss;
char *ss,*p1,*p2;
ss=new char[getlength()+strlen(s)+1];
p1=ss;
p2=str;
while(*p1=*p2)p1++,p2++;
while(*p1++=*s++);
delete []str;
str=ss;
写了一下注释:
//定义三个字符型指针
char *ss,*p1,*p2;
//new一个getlength()+strlen(s)+1长度的字符数组 并让ss指向它
ss=new char[getlength()+strlen(s)+1];
//p1 再指向---> ss
p1=ss;
//p2 指向---> str
p2=str;
//当p1与p2值相等时,p1,p2后移 注意 这里是赋值语句 p2赋值给p1
while(*p1=*p2) p1++,p2++;
//当* p1与* s相等时,p1++,s++后移 注意 这里是赋值语句 s赋值给p1
while(*p1++=*s++);
//释放掉临时申请的str数组空间
delete []str;
//再将ss赋值给str str中存的就是拼接后的内容了。
str=ss;
希望对题主有所帮助,望采纳!!