填空题 以下程序中,成员函数sort1的功能是使p所指向的字符串中的字符按照其ASCII码值从小到大排序。成员函数merge (str &a,str &b)先对对象a和b中字符串的各个字符进行排序,然后将两个已排序的字符串合并,合并后仍然按升序排列。 【程序】(4分) #include #include class str{ public; char *p; str(char *s=0) { if(s!=0) { p=new char[strlen(s) +1] ; strcpy (p,s) ; } else p=0; } ~str2 {if(p) delete []p;} void output3 { cout<4 { int n=strlen (p) ; for (int i=n-l; i>0 ; i--) for(int j=0; j5(19) 6){ char t=p[j]; 7(20) 8; p[j+1]=t; } } void merge(str &a,str &b) { a.sort9; b.sort10; if (p) delete []p; p= 11(21) 12; char *pa=a.p,*pb=b.p,*pc=p ; while (*pa&&*pb) if (*pa<*pb) *pc++=*pa++; else *pc++=*pb++; if(*pa) while(*pa) *pc++=*pa++; else while(*pb) *pc++=*pb++; *pc=0; } }; void main (void ) { str s1("Hello,Wang."),s2 ("You are students."),s3; 13(22) 14; s1. output15; s2. output16; s3. output17; }
【正确答案】
【答案解析】