将两个有序字符串集合排序成一个新的有序集合:
思路:这里采用指针的形式,如果两个指针没有指到’\0’,则通过比较得出先后顺序,另外就是两中情况,分别在下面代码中体现出来了。
#include <stdio.h>
void fun(char *str1, char *str2)
{
char *s;
char a[60];
s=a;
while(*str1!='\0'&&*str2!='\0')
{
if(*str1>=*str2)
{
*s = *str1;
str1++;
}
else{
*s = *str2;
str2++;
}
s++;
}
if(*str1=='\0')
{
while(*str2 != '\0')
*s++ = *str2++;
}
if(*str2 == '\0'){
while(*str1!='\0')
*s++ = *str1++;
}
*s = '\0';
s = a; //这里是将指针重新指回数组的首地址。
printf("%s",s);
}
int main()
{
char str1[]="abcdefxyz";
char str2[]="ghijklm";
char *p,*q;
p=str1;
q=str2;
fun(q,p);
return 0;
}