将用户输入与char数组匹配(两者都包含DEL字符)

时间:2017-08-25 13:55:36

标签: c compare string-comparison strcmp del

我正在解决一个二进制炸弹。在一个阶段中包含以下代码:

bool phase_bird(const char* guess)
{
    char c;
    c=blackBoxC();
    appendChar(c);
    mute(true);
    c=blackBoxC();
    appendChar(c);
    c=blackBoxC();
    appendChar(c);
    mute(false);
    c=blackBoxC();
    appendChar(c);
    c=blackBoxC();
    appendChar(c);
    mute(false);
    c=blackBoxC();
    appendChar(c);
    c=blackBoxC();
    appendChar(c|3);
    c=blackBoxC();
    appendChar(c|5);
    c=blackBoxC();
    appendChar(c|9);
    return stringMatches(guess);
}
到目前为止我所知道的是:

  • blackBoxC()返回一个char

  • appendChar()将char附加到char数组,该数组将与用户输入进行比较

  • mute()while true会使appendChar()停止工作

我目前知道blackBoxC()返回的字符是 yxFUOXizu ,只附加 yUOXkizv

我也知道,由于按位OR,最后三个字符从 izv 更改为 k ^?^?

,似乎只是输入 yUOXk ^?^?作为我的猜测。但猜测是不可能的,炸弹爆炸了。我没有意识到输入这些DEL char实际上会删除我的一些输入。

将其从 yUOXk ^?^?更改为 yUO

现在每个invaild猜测实际上都会让我感到松散,这是一个问题!我不知道他们用什么方法来比较char数组,但我假设它可能是strcmp()。

这意味着即使我要将我的输入更改为 yUOXkkk ^?^?,字符串的长度仍然不同。

如果有人对如何解决这个问题有任何意见,我很乐意听到它!

问候

0 个答案:

没有答案