【问题标题】:Find a char that equals an input找到一个等于输入的字符
【发布时间】:2018-12-09 18:28:08
【问题描述】:

在下面的代码中,我从用户那里获取输入,然后通过将其与其他所有数字进行比较来找到引入的数字。


这是我的代码:
#include <stdio.h>
#include <stdlib.h>

int main(){
    int i = 0;
    int input;

    printf("Input a digit: \n");
    scanf("%d", &input);

    for(; i < 10; i++)
    {
        if(i == input)
        {
            printf("Your input is %d\n", i);
            break;
        }
    }

    return 0;

}

我如何检查信件?假设用户输入字母 G,然后我将其循环以将其与其他每个字符进行比较,直到找到它等于的那个?

【问题讨论】:

  • 猜猜看,用户输入的数字是...input。为什么需要循环?
  • 这不是我需要回答的问题。但只是为了让你知道,这样我就可以计算出尝试每种数字/字母组合来破解密码所需的时间复杂度。

标签: c string char


【解决方案1】:

您几乎可以使用已有的代码,只需扫描char

char input;
scanf("%c", &input);

要检查输入,请使用最符合您期望的内容。 switch 可能是一个不错的选择:

switch (input) {
case 'G':
    printf("G was received\n");
    break;
default:
    printf("Uninteresting character %c was received\n", input);
}

【讨论】:

  • 检查字母表中的每个字母似乎有点乏味。我的问题是如何将一封信与其他信进行比较以匹配。
  • input == 'x'?只需使用比较运算符。如果您对字母表中的所有字母都有不同的操作,那么就没有办法解决繁琐的工作。切换,如果/否则,甚至可能是使用字符的整数值的查找表,...这取决于您的用例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-09
  • 1970-01-01
  • 2017-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多