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

时间:2017-03-11 13:06:13

标签: c input alphanumeric

我试图读取4个用户输入,可以是一位数字,两位数字或一个字母。我尝试过使用%c,但不能包含任何两位数字。我也尝试了%d,但是所有的字母都是0。是否有任何东西可以涵盖所有的基础?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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");

请注意,这非常天真,并且几乎不包含错误检测,但它提供了如何执行此操作的想法。