编写函数void change(char *a,char b,charc)。 函数功能是,
将a指向的字符串和b指向的字符串按排列顺序连接一起,再将ab合并的字符串跟c交叉合并在一起。长的部分放在结尾。
#include <stdio.h>
#include <string.h>
#define M 50
void change(char *a,char b,charc);
int main()
{
char a[M],b[M],c[M];
printf(“Input string a :”);
gets(a);
printf(“Input string b:”);
gets(b);
printf(“Input string c:”);
gets©;
change(a,b,c);
return 0;
}
void change(char *a,char b,charc)
{
char *i,*j,*g,d,*h;
int p = 0;
char t[M];
i = a;
h = c;
while(*a!=’\0’)//将a和b的字符串连接起来。
{
a++;
}
for(j=b;*j!=’\0’;j++,a++)
{
*a = *j;
}
*a = ‘\0’;
for(j=i;*j!=’\0’;j++)
{
for(g=j+1;*g!=’\0’;g++)
{
if(*j>*g)
{
d =*j;
*j=*g;
*g=d;
}
}
}
printf("%s\n",i);//连接后的字符串
while(*h!=’\0’)//将a和c的字符串交叉合并
{
t[p] = *i;
t[p+1] = *h;
p = p+2;
i++;
h++;
}
while(*i!=’\0’)
{
t[p] = *i;
i = i+1;
p++;
}
t[p] = ‘\0’;//给t结尾加个’\0’,不然不是字符串,而是字符数组。
printf("%s",t);
}