求两字符串并集,为什么没有输出,求大神解答
#include<stdio.h>#include<string.h>
#include<stdlib.h>
void sort(char *s);
char *bingji(char *s,char *s1,char *s2)//求并集
{
int len1=strlen(s1);
int len2=strlen(s2);
s=(char *)malloc(len1+len2+1);
int i;
for(i=0;i<len1;i++)
{
*(s+i)=*(s1+i);
}
for(i=0;i<len2;i++)
{
*(s+len1+i)=*(s2+i);
}
*(s+len1+len2)='\0';
sort(s);
return s;
}
void sort(char s[])//按asii排序
{
int len=strlen(s);
int i,j;
for(i=0;i<len-1;i++)
{
for(j=0;j<len-1-i;j++)
{
if(s[j]>s[j+1])
{
char temp;
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
}
for(i=0;i<len-1;i++)//去重
{
if(s[i]==s[i+1])
{
for(j=i+1;j<len-1;j++)
{
s[j]=s[j+1];
}
s[len-1]='\0';
len--;
i--;
}
}
}
int main(){
char *s=NULL;
char s1[20]="abcde";
char s2[20]="defg";
char *t=bingji(s,s1,s2);
printf("%s\n",t);
return 0;
}