为什么用gets()接收字符串会WA(测试结果都对啊啊啊)

P1914 小书童——凯撒密码

水滴石 @ 2019-03-10 10:37:39

#include <stdio.h>

int main()
{
    char passwd[51];
    int n,i;
    scanf("%d",&n);
    getchar();
    gets(passwd);
    for(i=0;passwd[i]!='\0';i++)
    {
        passwd[i]='a'+(passwd[i]-'a'+n)%26;

    }
    puts(passwd);
    return 0;
}

by 水滴石 @ 2019-03-10 10:40:12

我试过:

如果不用gets()函数,而是用scanf("%s"),

然后把getchar()删掉就可以AC了。

所以我怀疑是不是getchar()搞的鬼。


by 已注销^6Gv$vkg @ 2019-03-10 10:40:14

iostream大法好


by 已注销^6Gv$vkg @ 2019-03-10 10:41:10

cin >> passwd >> ws;

by 违规用户名U175511 @ 2019-03-10 10:42:53

@水滴石

while(getchar()!='\n');

by 水滴石 @ 2019-03-10 17:11:19

@ChenHacker 先谢谢你啦!我试了一下,还是不行哦。


by AndrewMiao @ 2019-03-14 14:52:29

puts()多输出了一个换行符,不知道对评测是不是有影响


|