在 C 中将字母数字存储为未知数量的数字

storing alphanumerics as an unknown number of digits in C

我正在尝试读取 4 个用户输入,它们可以是一位数、两位数或一个字母。我试过使用 %c,但它不能包含任何两位数字。我也试过 %d,但所有字母都读为 0。有什么可以覆盖所有碱基的吗?

读取一行并将其存储为字符串。然后你就可以分析得到什么了。

简单示例:

  size_t n = 2;
  char *str;
  str = malloc (n + 1);
  getline (&str, &n, stdin);

  if (str[0]>='0'&& str[0]<='9')
    if (str[1]>='0' && str[1]<='9')
      printf("Two digits\n");
    else
      printf("One digit\n");

请注意,这是非常幼稚的,几乎不包含任何错误检测,但它给出了如何做的想法。

在 C 中,%c 通常用于字符输入,%d 用于整数。通常你在扫描时使用这些。试试 %s 这会扫描一个字符串。