c语言代码,麻烦大神帮忙,明天就要交了!!!拜托啦

2024-11-17 13:00:45
推荐回答(2个)
回答1:

//只需稍微修改一下就能满足你的要求了
#include
#include

#define N 1024

void sort(char *pt);
void bingji();
void jiaoji();
void chaji();

char str1[N],str2[N];
int main()
{
printf("请输入两个全由小写字母构成的字符串,每行一个:\n");
gets(str1);
gets(str2);
bingji();
jiaoji();
chaji();
system("PAUSE");
return EXIT_SUCCESS;
}
void sort(char *pt)
{
int i,j;
char c;

for(i=0;i {
for(j=strlen(pt)-1;j>i;j--)
{
if(pt[j] {
c=pt[j-1];
pt[j-1]=pt[j];
pt[j]=c;
}
}
}
}
int iscontain(char a[],int len,char c)
{
int i;

for(i=0;i {
if(c==a[i])
{
return 1;
}
}
return 0;
}
void bingji()
{
int i,j,len,len1=strlen(str1),len2=strlen(str2);
char* buf=(char*)calloc(len1+len2+1,sizeof(char));

for(i=0,j=0,len=0;i {
if(i {
if(!iscontain(buf,len,str1[i]))
{
buf[len++]=str1[i];
}
i++;
}
if(j {
if(!iscontain(buf,len,str2[j]))
{
buf[len++]=str2[j];
}
j++;
}
}
buf[len]='\0';
sort(buf);
printf("%s\n",buf);
free(buf);
}
void jiaoji()
{
int i,len,len1=strlen(str1),len2=strlen(str2);
char buf[N];

for(i=0,len=0;i {
if(!iscontain(buf,len,str1[i]) && iscontain(str2,len2,str1[i]))
{
buf[len++]=str1[i];
}
}
buf[len]='\0';
sort(buf);
printf("%s\n",buf);
}
void chaji()
{
int i,len,len1=strlen(str1),len2=strlen(str2);
char buf[N];

for(i=0,len=0;i {
if(!iscontain(buf,len,str1[i]) && !iscontain(str2,len2,str1[i]))
{
buf[len++]=str1[i];
}
}
buf[len]='\0';
sort(buf);
printf("%s\n",buf);
}

回答2:

这个。。。要睡觉了。。。有空再来吧。