题目分析:首先需要找到需要接收字符串中最大的字符。
第二:需要将接受的数组从最大值开始其余的向后移动,所以这个数组空间需要够。
第三:将数组插入
开始编程:
#include <stdio.h>
char *fun(char*p1,char*p2);
int main(){
char a1[30]="abndjzcb";
puts(a1);
char a2[]="abmndc";
char*n=fun(a1,a2);
puts(a2);
puts(n);
return 0;
}
char *fun(char*p1,char*p2){
int i=0,j=0,k=0,l=0,m=0;
char max=p1[0];
for(i=0;p1[i]!='\0';i++){
l++;//p1 长度
}
for(i=0;p2[i]!='\0';i++){
j++;//p2 长度
}
for(i=0;p1[i]!='\0';i++){
if(max<p1[i]){
max=p1[i];//找出p1中最大的字符
k=i;
}
}
for(i=l-1;i>=k;i--){
p1[i+j]=p1[i];//给p2留下位置
}
for(i=k+1,m=0;m<j;i++,m++){
p1[i]=p2[m];//在最大字符后面插入p2
}
return p1;
}