先将不一样的放到另一个数组 ,每有不一样的,b(输入的)位数不变,a(标准)继续走,多的存起来。
for(x=0,y=0;x<z;x++){
if(a[x]==b[y]){
y++;
continue;
}
else{
c[t]=a[x];
t++;
}
}
处理输出时有问题,大小写要一开始改
#include<stdio.h>
#include<string.h>
int main(){
int x,y;
char a[30002],b[30002],c[30002];
scanf("%s",a);
int z=strlen(a);
while(scanf("%s",b)!=EOF){
int m,n=0;
int w,q;
int t=0;
for(x=0,y=0;x<z;x++){
if(a[x]==b[y]){
y++;
continue;
}
else{
c[t]=a[x];
t++;
}
}
c[t]='\0';
m=strlen(c);
//处理输出
//printf("%s",c);
//搞成大写
for(n=0;n<m;n++){
if(c[n]>96)
c[n]-=32;//在输出时改变,T和t会重复
for(q=0,w=0;q<=n;q++){
if(c[q]==c[n])
w++;
}
if(w==1){
printf("%c",c[n]);//如果在这改,直接改c[]的话查重有问题
}
}
printf("\n");
}
}