请帮忙看下程序哪里不妥。。。。
程序的目的是:输入字符串a和b,然后将a中有但是b中没有的字母都赋值给字符串c,再把C中重复多余的字母删除,最后把字符串c输出。例如,a输入aabacadaef,b输入bcd,则c最终是aef.一下程序运行时输入a和b后就无输出了,请各路高手帮忙看下哪里不妥
#include <stdio.h>
#include <string.h>
int main()
{
void tihuan(char a[],int,int);
int m,n,j,i,k=0,z=0,l;
char a[20],b[20],c[20]={1};
scanf("%s",a);
scanf("%s",b);
m=strlen(a);
n=strlen(b);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++) if(a[i]==b[j]) k=1;
if(k==0) c[z++]=a[i];
k=0;
}
l=strlen(c);
for(i=0;i<l-1;i++)
for(j=i+1;j<l;j++)
if(c[i]=='\0') break;
else if(c[i]==c[j])
{
tihuan(c,l,j);
j=j-1;
}
printf("%s",c);
return 0;
}
void tihuan(char a[],int l,int n)
{
int i;
for(i=n;i<l;i++)
a[i]=a[i+1];
a[l-1]='\0';
}
[ 本帖最后由 sala0127 于 2011-11-12 21:58 编辑 ]