
请问下面代码哪里出错了,感觉逻辑没错
#include<stdio.h>
#include<string.h>
int main(){
int i,j,k;
char A[10000],B[10000];
for(i=0;i<10000;i++)
{
scanf("%c",&A[i]);
if(A[i]=='\n') break;
}
for(i=0;i<1000;i++){
scanf("%c",&B[i]);
if(B[i]=='\n') break;
}
for(i=0;i<(strlen(A)-1);i++){
for(j=0;j<(strlen(B)-1);j++){
if(A[i]==B[j]){
A[i]=NULL;
for(k=i+1;k<(strlen(A)-1);k++){
A[k-1]=A[k];
}
}
}
}
for(i=0;i<strlen(A);i++){
printf("%c",A[i]);
}
return 0;
}
#include<stdio.h>
#include<string.h>
int main(){
int i,j,k;
char A[10000],B[10000];
for(i=0;i<10000;i++)
{
scanf("%c",&A[i]);
if(A[i]=='\n') break;
}
A[i]='\0';//字符串结尾标志
for(i=0;i<1000;i++){
scanf("%c",&B[i]);
if(B[i]=='\n') break;
}
B[i]='\0';//strlen以'\0'为结束符计算长度
for(i=0;i<strlen(A);i++){
for(j=0;j<strlen(B);j++){
if(A[i]==B[j]){
for(k=i;k<strlen(A);k++){
A[k]=A[k+1];//前移包括'\0'
}
}
}
}
printf("%s",A);
return 0;
}