ddddddddddcccccccccc 2022-04-02 18:34 采纳率: 76.9%
浏览 29
已结题

请问下面代码哪里出错了,感觉逻辑没错

img


请问下面代码哪里出错了,感觉逻辑没错

#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;
}
  • 写回答

1条回答 默认 最新

  • 浪客 2022-04-02 20:11
    关注
    
    #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;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月9日
  • 已采纳回答 4月8日
  • 修改了问题 4月2日
  • 创建了问题 4月2日