麦当和笛亚 发表于 2021-12-9 23:11:13

pta上的作业,但是这代码不对劲,但是自个又看不出来

以指针的方式,将某个字符串中出现的特定字符删去,然后输出新的字符串。

输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。 每组测试数据输入一个字符串s和一个非空格字符t。其中s的长度不超过100,且只包含英文字母。

输出格式:
对于每组测试,将删掉t后新得到的字串输出。如果串被删空,则输出“NULL”(引号不必输出)。

输入样例:
2
eeidliecielpvu i
ecdssnepffnofdoenci e
输出样例:
eedlecelpvu
cdssnpffnofdonci
这是自己打的代码
#include <stdio.h>
int main()
{
        int i,j,m=0;
        int n;
    scanf("%d",&n);
        char a[]={0};//定义一个指针指向数组,p+i就指向二维数组的第i行
        char t={0};
        for(i=0;i<n;i++)scanf("%s %c",&a,&t);
        char (*p)=a;
        for(i=0;i<n;i++){
                for(j=0;p!='\0';j++){
                        if(p!=t){
                        p=p;m=m+1;
                        }
                }p='\0';       
        }
        for(i=0;i<n;i++){
                if(p=='\0')printf("NULL");
                else printf("%s\n",p+i);
        }
        return 0;
}

lei1996 发表于 2021-12-10 10:53:14

for (i = 0; i<n; i++) {
                m = 0;    //需要每次清0吧
                for (j = 0; p != '\0'; j++) {
                        if (p != t) {
                                p = p; m = m + 1;
                        }
                }p = '\0';
        }

傻眼貓咪 发表于 2021-12-10 15:19:03

#include <stdio.h>

int main(){
        int T;
        scanf("%d", &T);
        char str, res, t;
        for(int i = 0; i < T; i++){
                scanf("%s", str);
                getchar();
                scanf("%c", &t);
                for(int j = 0, n = 0; str; j++)
                if(str != t)
                res = str;
        }
        for(int i = 0; i < T; i++) printf("%s\n", res);
        return 0;
}
页: [1]
查看完整版本: pta上的作业,但是这代码不对劲,但是自个又看不出来