qq_32653757
2015-11-12 03:18
采纳率: 76.9%
浏览 2.1k
已采纳

新手OJ, 删除字符串中指定字符, 感觉没错, 但总是超出输出限制, 求大神指点

Description
从一个字符串中,删去某个字符。

Input
有多个测试用例,每个测试用例占两行,第一行是要删除的字符,第二行是一个字符串。字符串长度不超过1024。

Output
对应每个测试用例,单独输出一行:删除那个字符之后的字符串。

Sample Input
a
abacad
b
abbbbb

Sample Output
bcd
a

Hint
这题可以不用存储字符串,只需逐个读入字符,判断是否==要删的字符,!=则输出。

+++++++++++++++++++++++++++++++++++++++++++++======

#include
int main(void){
char ch, ch1, cha, c[1030];
int i;
while((ch1=getchar())!=0){
cha=getchar();

gets(c);

for(i=0; i<=1026; i++){
if(c[i]=='\0')
break;
if(c[i]!=ch1)
printf("%c", c[i]);
}
printf("\n");
}
return 0;
}

PS: 我用他提示的思路的话, 提示超时

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • 野孩子1991 2015-11-12 13:17
    已采纳

    我把你的内循环改一下:

    #include
    int main( ){
    char ch, ch1, cha;
    while( (ch1=getchar()) != 0 ){
    cha=getchar();
    while( (ch = getchar(),ch) != '\n')
    {
    if(ch != ch1)
    printf("%c", ch);
    }
    printf("\n");
    }
    return 0;
    }

    打赏 评论
  • yangbo50304 2015-11-12 09:40

    仔细看你的代码,没有问题,只不过现在的代码实现只能输出一个用例,
    如果你要想输出多个用例的话,得用数组,或者别的存储下。

    打赏 评论

相关推荐 更多相似问题